POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Fluidez Brillante: Cómo Configurar PostgreSQL

PostgreSQL con Fluent Brighter: outbox, inbox y gateway para producción

Publicado el 07/09/2025

En artículos anteriores sobre integración con RabbitMQ mostré cómo trabajar con Fluent Brighter; en esta ocasión te explico paso a paso cómo configurar PostgreSQL para habilitar outbox, inbox y gateway de mensajes con Fluent Brighter, manteniendo una configuración clara, segura y preparada para producción.

Requisitos esenciales: .NET 8 o netstandard2.0 y los paquetes NuGet de Fluent Brighter para PostgreSQL y el Service Activator para tareas en segundo plano. Con esto podrás publicar y consumir mensajes de forma fiable, desacoplar microservicios y garantizar entregas idempotentes.

Fundamentos de Brighter. Las solicitudes se modelan como comandos y eventos que implementan IRequest. Un comando se dirige a un único consumidor, por ejemplo ProcessOrderCommand, mientras que un evento notifica a varios suscriptores, por ejemplo OrderPlacedEvent. Opcionalmente puedes usar un mapeador de mensajes para traducir entre el mensaje de Brighter y tu objeto de dominio, aunque la serialización JSON es el comportamiento por defecto. Finalmente, un manejador procesa la solicitud y ejecuta la lógica de negocio, por ejemplo un OrderPlacedHandler que registra y aplica la operación correspondiente.

Registro inicial en el contenedor de DI. Agrega AddFluentBrighter en tu arranque y define allí los componentes de mensajería. Esto permite una construcción declarativa y coherente, además de simplificar pruebas y despliegues.

Suscripciones. En la sección de Subscriptions usa AddPostgresSubscription para declarar qué colas o tópicos quieres escuchar. Si empleas RabbitMQ como broker, combina AddRabbitMqChannelFactory con una instancia de RelationalDatabaseConfiguration para que Brighter gestione los canales de entrada y el almacenamiento de estado con PostgreSQL. Puedes declarar varias suscripciones y asignar colas como greeting.queue o farewell.queue, ajustando además el tipo de bomba de mensajes, por ejemplo Reactor, cuando necesites alto rendimiento.

Publicaciones. En Producers añade AddPostgresPublication para definir cómo y dónde se publican tus eventos. Establece la conexión con RelationalDatabaseConfiguration y registra una o más publicaciones, cada una con su cola o tópico objetivo, como greeting.event.topic. Esto te permitirá escribir primero en el outbox y después publicar de forma segura hacia el broker, evitando pérdidas en caso de fallos temporales.

Outbox con PostgreSQL. Activa UsePostgresOutbox para persistir de forma transaccional los mensajes salientes junto con tus cambios de dominio. Habilita además UseDbTransactionOutboxArchive para archivar y UseOutboxSweeper para barrer y reenviar mensajes pendientes. Con este patrón garantizas consistencia entre tu base de datos operacional y la mensajería, incluso en escenarios con fallos de red o reinicios inesperados.

Inbox con PostgreSQL. Si necesitas idempotencia al consumir, utiliza UsePostgresInbox desde la sección de Subscriptions. Esto registra los mensajes entrantes y te permite evitar reprocesamientos, algo clave cuando habilitas reintentos o cuando el broker entrega más de una vez.

Configuración unificada. Para simplificar, UsingPostgres centraliza la conexión y los nombres de tablas de outbox e inbox. Define SetConnection con el connection string de PostgreSQL y luego activa UseInbox y UseOutbox. Completa con UsePublications para tus eventos, por ejemplo agregar publicaciones para GreetingEvent y FarewellEvent, y UseSubscriptions para las colas correspondientes, asignando Reactor si buscas baja latencia. Esta aproximación reduce duplicidad, facilita el mantenimiento y sigue siendo flexible para escenarios avanzados.

Buenas prácticas. Mantén los mapeadores pequeños y orientados a la transformación mínima necesaria. Define claves idempotentes en el inbox para procesamientos seguros. Monitoriza el barrido del outbox y su archivo, y ajusta las políticas de reintento. Emplea métricas y trazas para entender el flujo extremo a extremo, especialmente en arquitecturas de microservicios.

En Q2BSTUDIO impulsamos soluciones de software a medida y aplicaciones a medida que integran patrones de mensajería confiables como outbox e inbox sobre PostgreSQL, con despliegues robustos en servicios cloud aws y azure. Si necesitas un equipo para construir plataformas resilientes y escalables, descubre cómo abordamos proyectos end to end en desarrollo de software y aplicaciones a medida y cómo aseguramos disponibilidad, rendimiento y observabilidad con nuestra práctica cloud en servicios cloud aws y azure.

Nuestro portafolio abarca inteligencia artificial e ia para empresas, agentes IA, ciberseguridad y pentesting, servicios inteligencia de negocio y power bi, además de automatización de procesos. Integramos modelos de inteligencia artificial con pipelines de datos y analítica, y reforzamos la protección extremo a extremo con ciberseguridad. Unificamos datos para cuadros de mando con power bi y habilitamos decisiones informadas en tiempo real.

Conclusión. Con Fluent Brighter y PostgreSQL puedes implementar outbox e inbox para garantizar confiabilidad e idempotencia, además de un gateway de mensajería coherente. La configuración unificada con UsingPostgres hace el setup más directo sin perder flexibilidad. Si quieres ver un ejemplo completo en funcionamiento, revisa esta referencia en GitHub: implementación de muestra con PostgreSQL.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio