Reliability
Infrastructure that is designed around failure, recovery, and durable state.
Failure awareNamastack provides open-source infrastructure for building dependable event-driven applications. Namastack Outbox is the first available project.
// Native Namastack Outbox setup
dependencies {
implementation(platform("io.namastack:namastack-outbox-bom:1.9.x"))
implementation("io.namastack:namastack-outbox-starter-jpa")
}Namastack is the umbrella brand for open-source infrastructure tools for modern distributed applications. Today, that work is represented by Namastack Outbox.
Infrastructure that is designed around failure, recovery, and durable state.
Failure awareClear transactional boundaries keep state changes and outgoing work aligned.
TransactionalOperational behavior, configuration, and observability are part of the design.
OperableFocused APIs fit the Spring ecosystem without requiring another platform.
Developer focusedThe available project is developed in public under the Apache License 2.0.
Apache 2.0A transactional outbox library for Spring Boot. It persists business data and outgoing work in the same local transaction, then processes committed records asynchronously. Delivery is at least once, so duplicate delivery is possible and consumers should be designed to be idempotent.
Explore the productBusiness data and the outbox record are persisted in one local transaction.
@TransactionalThe committed outbox record becomes durable work ready for processing.
Durable stateWorkers poll committed records and coordinate across application instances.
Partition awareThe matching handler runs while records with the same key stay ordered.
Per-key orderingSuccess completes the record; failures follow the configured retry strategy.
At least once// Business state and outgoing work commit together
@Transactional
fun createOrder(command: CreateOrderCommand) {
val order = orderRepository.save(Order.create(command))
outbox.schedule(
payload = OrderCreatedEvent(order.id, order.customerId),
key = "order-${order.id}"
)
}The documented building blocks for moving committed work from storage to its destination.
At-least-once delivery with configurable retries and fallback handling. Consumers should be idempotent.
Records that share a key retain their processing order across polling cycles.
Partition-aware processing coordinates work safely across multiple application instances.
Choose JPA, JDBC, or MongoDB to fit the persistence model already used by the application.
Publish through Kafka, RabbitMQ, and Amazon SNS integrations, or implement a custom handler.
Micrometer metrics, distributed tracing, and context propagation cover the asynchronous boundary.
Namastack Outbox is an independent library. Spring Modulith applications can use the official starter to externalize events through Namastack's persistence, processing, retry, ordering, and observability model.
Read the integration guidespring-modulith-starter-namastackNamastack OutboxJPA · JDBC · MongoDBTechnology choices and project signals you can inspect directly.
Use Namastack Outbox to close the dual-write gap in your Spring Boot application.
Namastack Outbox is independently developed and maintained as open-source software. Sponsorship supports maintenance, documentation, integrations, and long-term stability.