Namastack Outbox for Spring Boot 0.1.0 - Initial Release π
We're excited to announce the first release of Namastack Outbox for Spring Boot, a robust Spring Boot library that implements the Outbox Pattern for reliable message publishing in distributed systems.
π What is Namastack Outbox for Spring Boot?
Namastack Outbox for Spring Boot ensures that domain events are published reliably, even in the face of system failures, by using transactional guarantees and distributed locking. This library solves the common problem of ensuring consistency between database operations and message publishing in microservices architectures.
β¨ Key Features
π Transactional Outbox Pattern
- Ensures events are never lost by storing them in the same database transaction as your business data
- Guarantees eventual consistency between database state and published events
π Distributed Locking
- Prevents concurrent processing of the same aggregate across multiple application instances
- Uses optimistic locking to handle race conditions safely
π Automatic Retry Mechanism
- Multiple configurable retry policies with exponential backoff
- Jitter support to prevent thundering herd problems
- Automatic retry scheduling for failed events
π Event Ordering Guarantees
- Ensures event processing order per aggregate
- Maintains consistency in event sequence for domain aggregates
β‘ High Performance & Scalability
- Optimized for high-throughput scenarios
- Supports multiple application instances running concurrently
- Efficient database queries with proper indexing
π‘οΈ Production Ready
- Zero message loss guarantee through database-backed reliability
- Race condition safe implementation
- Comprehensive error handling and logging
π¦ Available Modules
Core Modules
namastack-outbox-core- Core outbox pattern implementationnamastack-outbox-jpa- JPA/Hibernate integration for database operations
Integration Modules
namastack-outbox-starter-jpa- Spring Boot starter for easy setupnamastack-outbox-actuator- Spring Boot Actuator endpoints for monitoringnamastack-outbox-metrics- Metrics and observability support
π Quick Start
Get started with Namastack Outbox for Spring Boot in minutes! Follow our comprehensive Quick Start Guide for step-by-step setup instructions.
π Requirements
- Java: 21 or higher
- Spring Boot: 3.x
- Database: Any JPA-supported database (PostgreSQL, MySQL, H2, etc.)
ποΈ Database Schema
The library automatically creates two essential tables:
outbox_record- Stores events to be processedoutbox_lock- Manages distributed locking per aggregate
π Monitoring & Observability
- Spring Boot Actuator endpoints for health checks and metrics
- Built-in metrics for processed events, failures, and retry attempts
- Comprehensive logging for debugging and monitoring
π― Use Cases
Perfect for:
- Microservices architectures requiring reliable event publishing
- Event-driven systems needing guaranteed event delivery
- Domain Driven Design implementations with domain events
- CQRS patterns where commands need to publish events reliably
- Saga patterns requiring reliable event coordination
π Documentation & Examples
- π Documentation: outbox.namastack.io
- π» Example Project: Check out
namastack-outbox-examples/namastack-outbox-basic-example - π§ Configuration Reference: Complete configuration options in the docs
π€ Community & Support
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π§ Contact: Namastack
βοΈ License
Apache License 2.0 - see LICENSE file for details.
Ready to get started? Check out our Quick Start guide and join the community!
Maven Central: All artifacts are available on Maven Central under the io.namastack group.