Apache Kafka con .Net 👉De CERO a Experto.
Te explico cómo implementar Patrón de diseño Publish and Subscribe con .NET y Apache Kafka de Cero a experto con ejemplo de aplicación empresarial
🚨 Github Repo: https://github.com/juancamba/youtube-net/tree/main/KafkaExample
🚩 Atención developers:
Cuando os expliqué porqué usar un Broker en vez de una llamada directa olvidé mencionar otra ventaja crucial:
🚨 Si quiero dar de alta un usuario en CRM y además tengo que darlo de alta en facturación, si la llamada es SÍNCRONA (via petición http a un endpoint por ejemplo) y facturación está caído no podría dar de alta el usuario. Como os estaréis imaginando esto en un sistema de Ecommerce es muy negativo ya que podría perder un potencial cliente.
✅ Si lo hago mediante broker, el mensaje será entregado cuando se levante el sistema de facturación, pero me permitiría dar de alta el usuario en CRM sin esperar a que facturación se levante. Esto es porque CRM solo se encarga de entregar el mensaje al bus, es ASÍNCRONO, entendéis?
#mediatr #cqrs #csharp #automapper #entityframework #kafka #rabbitmq #rabbit #automapper
Qué es Kafka?
Apache Kafka es una plataforma distribuida de mensajería orientada a flujos de datos. Fue desarrollada originalmente por LinkedIn y ahora es parte de la Apache Software Foundation.
👉 Se usa principalmente para transmitir, procesar, almacenar y reproducir flujos de datos en tiempo real.
¿Para qué se usa Kafka?
Sistemas de logs distribuidos
Procesamiento de eventos en tiempo real (event streaming)
Comunicación entre microservicios
ETL en tiempo real
Monitoreo y análisis en vivo (IoT, e-commerce, etc.)
Conceptos clave
🧱 Broker
Un broker es un servidor Kafka que recibe y distribuye mensajes. Un clúster de Kafka puede tener uno o varios brokers.
📬 Producer
El productor es quien envía mensajes a Kafka. Por ejemplo, una aplicación que publica eventos de usuarios.
📥 Consumer
El consumidor es quien recibe mensajes de Kafka. Puede haber múltiples consumidores leyendo los mismos datos o datos diferentes.
📦 Topic
Un topic es una categoría o canal de mensajes. Los productores envían mensajes a topics, y los consumidores los leen desde allí.
🧩 Partition
Cada topic puede estar dividido en particiones, que permiten escalar horizontalmente y mantener el orden dentro de una partición.
📅 Offset
Cada mensaje dentro de una partición tiene un offset, que actúa como un identificador único y ayuda a los consumidores a saber qué ya fue leído.