Rootconf 2025 Annual Conference CfP

Rootconf 2025 Annual Conference CfP

Speak at Rootconf 2025 Annual Conference

Tickets

Loading…

pratik

@pratikgajjar

Factlib: Bulletproof Microservices Messaging Using the Outbox Pattern and PostgreSQL WAL

Submitted Apr 20, 2025

Building Reliable Microservices at Scale with Factlib

In the world of microservices, ensuring reliable message delivery between services remains a significant challenge. We developed Factlib to tackle this problem head-on by implementing the outbox pattern - a battle-tested approach for achieving reliable message delivery with transactional guarantees. Factlib leverages PostgreSQL’s Write-Ahead Log (WAL) for high-performance, low-latency event capture, avoiding the traditional polling overhead while maintaining strong consistency guarantees.

This talk dives into Factlib’s architecture, demonstrating how we combined PostgreSQL’s WAL capabilities with Kafka for message distribution, wrapped in a clean Golang API using Protocol Buffers. We’ll walk through real implementation examples, performance characteristics, and the challenges we overcame when building a production-grade solution that processes millions of transactions daily.

Key Takeaways

  • Understand how to implement the outbox pattern using PostgreSQL WAL for reliable, high-throughput microservices communication
  • Learn practical strategies for achieving exactly-once delivery semantics in distributed systems without sacrificing performance

Target Audience

This talk is ideal for backend engineers, distributed systems architects, and database specialists who work with microservices architectures and face challenges with cross-service data consistency. It will be especially valuable for teams using PostgreSQL who want to level up their event-driven architecture implementations.

Speaker Bio

Pratik is Engineering Lead at TriOTech (FamApp), where I focus on building scalable distributed systems.

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hybrid access (members only)

Hosted by

We care about site reliability, cloud costs, security and data privacy