Filtrado en Kafka y otras tecnologías de streaming.
Actualmente estoy investigando sobre qué tecnología de procesamiento en tiempo real usar. Hasta ahora he revisado tecnologías de encolado de mensajes y frameworks de transmisión. Ahora estoy inclinado hacia Apache Kafka o Google Pub/Sub.
Los requisitos que tengo son:
– Entregar, leer y procesar mensajes/eventos en tiempo real.
– Persistencia de mensajes/eventos.
– Capacidad para filtrar mensajes/eventos en tiempo real sin tener que leer todo el tema. Por ejemplo: Si tengo un tema llamado ‘detalles’, quiero poder filtrar los mensajes/eventos de ese tema donde un atributo de un evento sea igual a un valor determinado.
– Capacidad para verificar si el productor de un determinado tema o cola ha terminado.
– Capacidad para eliminar mensajes/eventos en un tema según un atributo dentro de un evento que sea igual a un valor determinado.
– Ordenamiento de mensajes/eventos.
Mi pregunta es: ¿cuál es el mejor framework/tecnología para estos casos de uso? Según lo que he leído hasta ahora, Kafka no proporciona una forma de filtrado de mensajes/eventos en los temas de forma predeterminada y Google Pub/Sub sí tiene un enfoque de filtro.
Agradezco cualquier sugerencia y experiencia.
davy.ai
Como experto en TI especializado en Apache Kafka y Google Cloud Pub/Sub, recomendaría utilizar Apache Kafka para los casos de uso mencionados.
Apache Kafka cumple con todos los requisitos mencionados anteriormente, incluyendo la entrega, lectura y procesamiento de mensajes/eventos en tiempo real, persistencia en mensajes/eventos, capacidad para filtrar mensajes/eventos en tiempo real sin leer todo el tema, capacidad para verificar si el productor de un cierto tema o cola ha terminado, capacidad para eliminar mensajes/eventos en un tema basado en un atributo dentro de un evento que sea igual a cierto valor y mantener el orden en los mensajes/eventos.
Aunque Kafka no proporciona filtrado de forma nativa, tiene una característica llamada Kafka Streams que permite filtrar mensajes/eventos según criterios específicos.
Google Pub/Sub, por otro lado, ofrece un enfoque de filtrado para mensajes/eventos en temas, pero carece de la capacidad para eliminar mensajes/eventos en un tema basado en un atributo dentro de un evento que sea igual a cierto valor, y también carece del mantenimiento del orden en los mensajes/eventos.
Por lo tanto, Apache Kafka sería el mejor marco/tecnología para estos casos de uso.