Fluidez Brillante: Cómo Configurar PostgreSQL

Guía para configurar PostgreSQL con Fluent Brighter: outbox, inbox y gateway de mensajería, suscripciones y publicaciones para microservicios fiables e idempotentes.

7 sept 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat