Skip to content

v0.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 21 Oct 19:54
· 2 commits to main since this release

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 implementation
  • namastack-outbox-jpa - JPA/Hibernate integration for database operations

Integration Modules

  • namastack-outbox-starter-jpa - Spring Boot starter for easy setup
  • namastack-outbox-actuator - Spring Boot Actuator endpoints for monitoring
  • namastack-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 processed
  • outbox_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

βš–οΈ 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.