Arquitectura de back-end
Microservicio de Pedidos/Facturas Basado en Eventos
Una arquitectura de microservicio altamente escalable que utiliza un diseño basado en dominio y el patrón de bandeja de salida para garantizar una entrega confiable de mensajes.
The challenge
En un sistema distribuido, garantizar la coherencia de los datos en múltiples servicios sin depender de transacciones distribuidas lentas (confirmaciones de dos fases) es un obstáculo arquitectónico importante. El cliente experimentó caída de mensajes y estados inconsistentes durante eventos de alto tráfico.
The solution
Rediseñamos el flujo principal de pedidos y facturas utilizando una arquitectura basada en eventos. Al implementar el patrón Transactional Outbox, garantizamos la entrega de mensajes al menos una vez a Kafka/RabbitMQ. Diseñamos a todos los consumidores para que fueran idempotentes, asegurando que los mensajes duplicados no dieran como resultado facturas duplicadas o un estado corrupto.