Fluent Brighter: Cómo Configurar Postgres

Configura Fluent Brighter con PostgreSQL para habilitar outbox, inbox y un gateway de mensajería en producción, con publicaciones, suscripciones y exactly-once.

7 sept 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

En artículos previos sobre Fluent Brighter y sobre la migración del outbox de Postgres a la versión 10 se mostró la integración con RabbitMQ. En esta ocasión te explico paso a paso cómo configurar Postgres para habilitar outbox, inbox y el gateway de mensajería utilizando Fluent Brighter, manteniendo una configuración clara y coherente para entornos de producción.

Requisitos

Necesitarás .NET 8 o netstandard2.0 y los paquetes NuGet siguientes: Fluent.Brighter.Postgres para la integración con Postgres y Paramore.Brighter.ServiceActivator.Extensions.Hosting para ejecutar el Service Activator y orquestar tareas en segundo plano. Con esto tendrás la base para procesar mensajes de forma fiable y transaccional.

Fundamentos de Brighter

Solicitudes comandos y eventos En Brighter defines mensajes como solicitudes. Un comando se dirige a un único consumidor, por ejemplo para procesar un pedido. Un evento notifica a varios interesados, como el caso de pedido confirmado para disparar flujos de notificación o analítica. Esta separación te ayuda a mantener bajo acoplamiento y alta cohesión.

Mapeador de mensajes El mapeador traduce entre tus objetos de dominio y el mensaje que se serializa. Por defecto se usa JSON, pero puedes registrar un mapeador personalizado para controlar cabeceras, metadatos y el contrato del mensaje.

Manejadores de solicitudes Un manejador procesa cada mensaje entrante y aplica la lógica de negocio. Es habitual registrar logs, validar datos y, si corresponde, publicar nuevos eventos tras completar la transacción de negocio.

Configuración de Fluent Brighter con Postgres

Registro en el contenedor Agrega Fluent Brighter en tu contenedor de inyección de dependencias y prepara las secciones de productores y suscripciones. A partir de ahí defines las piezas de Postgres sin repetir la conexión en cada bloque.

1 Registrar suscripciones Crea suscripciones Postgres con AddPostgresSubscription. Define la cola o tópico por evento, el tipo de bomba de mensajes recomendable usar Reactor para maximizar throughput y la política de reintentos. Por ejemplo, puedes escuchar la cola greeting.queue y otra cola farewell.queue, cada una con su handler.

2 Registrar publicaciones Declara publicaciones con AddPostgresPublication para seleccionar qué eventos se enrutan a qué colas. Un patrón frecuente es publicar eventos de dominio como greeting.event.topic y mapearlos a colas específicas por servicio consumidor.

3 Configurar outbox Activa UsePostgresOutbox para garantizar entrega fiable exactly once con la transacción de tu base de datos. Combínalo con UseDbTransactionOutboxArchive para archivar mensajes procesados y UseOutboxSweeper para barrer y enviar mensajes pendientes en segundo plano. Este patrón evita pérdidas cuando el broker no está disponible y mantiene consistencia entre tu estado y los mensajes.

4 Configurar inbox Con UsePostgresInbox habilitas idempotencia y persistencia de mensajes entrantes. El inbox registra cuál mensaje ya fue procesado evitando duplicados tras reintentos o fallos, clave para lograr procesamiento al menos una vez sin efectos colaterales.

5 Configuración unificada con UsingPostgres Para simplificar, usa UsingPostgres y define la conexión una sola vez. Dentro de ese bloque: establece la cadena de conexión, el nombre de la tabla de outbox, activa UseInbox y UseOutbox, registra tus publicaciones por tipo y crea suscripciones con su cola, concurrencia y tipo de bomba de mensajes. Un ejemplo típico es publicar GreetingEvent hacia greeting.queue y FarewellEvent hacia farewell.queue, y suscribirte a ambas con Reactor para consumir de forma eficiente.

Buenas prácticas Crea migraciones para las tablas de outbox e inbox con índices por id de mensaje y estado. Configura un archivado periódico o TTL para mantener las tablas ligeras. Ajusta la concurrencia de los consumidores según la carga y monitoriza métricas de latencia, tamaño de lote y reintentos. Si usas RabbitMQ como transporte, revisa la durabilidad de colas y confirma publicaciones para evitar pérdidas.

Cómo encaja esto en soluciones reales En proyectos de software a medida y aplicaciones a medida, este enfoque con outbox e inbox aporta fiabilidad empresarial y trazabilidad end to end. Si vas a desplegar en la nube, la arquitectura se integra perfectamente con servicios cloud aws y azure y facilita la observabilidad y el escalado horizontal del Service Activator.

Q2BSTUDIO es tu socio tecnológico para diseñar e implementar estas arquitecturas con estándares de calidad y seguridad. Desarrollamos software a medida, impulsamos proyectos de inteligencia artificial e ia para empresas con agentes IA y analítica avanzada, reforzamos ciberseguridad y pentesting, y habilitamos servicios inteligencia de negocio con power bi. Descubre cómo transformamos tu plataforma con nuestro enfoque integral en desarrollo de aplicaciones y software a medida y lleva tu backend a entornos elásticos y seguros con nuestros servicios cloud aws y azure.

Conclusión Con Fluent Brighter y Postgres puedes implementar outbox, inbox y un gateway de mensajería confiable de forma sencilla y extensible. La configuración unificada con UsingPostgres reduce fricción y evita duplicar parámetros, manteniendo flexibilidad para escenarios complejos de publicación y suscripción. Si quieres ver un ejemplo completo en ejecución, revisa la implementacion completa en GitHub en este repositorio. Integra estas prácticas en tu plataforma para ganar resiliencia, trazabilidad y escalabilidad desde el primer día.

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