Skip to content

Namastack Outbox v1.7.0

Choose a tag to compare

@github-actions github-actions released this 10 Jun 21:02
· 54 commits to main since this release
70c3991

What's New

Spring Boot 4.1.0 compatibility (GH-385)

Spring Boot dependencies were updated to 4.1.0. The JPA module now includes MySQL and MariaDB Hibernate dialect compatibility for schema validation so shipped LONGTEXT outbox schemas continue to validate with Hibernate's nationalized long text mapping under Spring Boot 4.1.0.

Spring Modulith integration guide and example (GH-294)

Namastack Outbox now includes a Spring Modulith integration guide, a dedicated Modulith example project, and smoke coverage for the example. The documentation explains how to use Namastack Outbox as the transactional outbox behind Modulith-style applications, including event publication precedence, retry behavior, observability, and Kafka-backed externalization.

Namastack Outbox BOM (GH-382, #383)

A new namastack-outbox-bom module centralizes versions for all Namastack Outbox artifacts. Gradle and Maven users can now import the BOM once and declare individual outbox modules without repeating the version. The README, quickstart, examples, Modulith example, and performance-test modules were updated to use the BOM-based setup.

Unified observability module (GH-229, #363)

A new namastack-outbox-observability module combines tracing and metrics around Micrometer Observation. It adds process and schedule observations, timer metrics, logical channel tagging, instance-level metrics, and updated observability documentation. The older namastack-outbox-metrics and namastack-outbox-tracing modules are now deprecated in favor of this module.

Performance test suite and tuning guide (GH-377, #378)

A new namastack-outbox-performance-test module provides producer/consumer tooling, Docker Compose infrastructure, Prometheus/Grafana monitoring, SQL setup, report generation, and repeatable commands for measuring outbox throughput and backlog behavior. The docs now include a performance tuning reference with generated report assets.

RabbitMQ publisher confirms and send diagnostics (GH-371, #380)

RabbitMQ publishing now uses a dedicated publisher that waits for correlated publisher confirms, reports nacks/timeouts/interruption as RabbitOutboxSendException, and can optionally fail processing when messages are returned as unroutable. Rabbit configuration metadata and docs were updated for the new confirm and unroutable-message settings.

Retry state in handler metadata (GH-364, #365)

OutboxRecordMetadata now exposes failureCount, attempt, and isRetry, allowing regular handlers to react differently on first delivery versus retry attempts. Retry policy exception matching also inspects the full cause chain for retryOn and noRetryOn rules.

Package-private Java annotated handlers (GH-381, #379)

Annotated handler discovery now supports package-private Java methods and fallback/retryable annotated methods, improving Java ergonomics without requiring every handler method to be public.

Example smoke tests (GH-298, #297)

Example projects now include smoke tests and a dedicated GitHub Actions workflow to verify the examples. The examples also share centralized Gradle version-catalog setup for Namastack Outbox and Testcontainers dependencies.

What's Changed

  • GH-385 Updated Spring Boot dependencies to 4.1.0 and added MySQL/MariaDB Hibernate schema-validation compatibility for shipped outbox schemas by Roland Beisel in current branch
  • GH-294 Added Spring Modulith documentation, a Modulith example project, tracing in the example, event multicaster precedence docs, and smoke coverage by Roland Beisel in current branch
  • GH-382 Added namastack-outbox-bom and updated docs/examples to consume Namastack modules through the BOM by Roland Beisel in #383
  • GH-381 Added support for package-private Java annotated handlers by Damian Malczewski in #379
  • GH-371 Reworked RabbitMQ publishing around correlated publisher confirms, explicit send exceptions, and optional unroutable-message failure handling by Roland Beisel in #380
  • GH-377 Added performance-test infrastructure, report tooling, monitoring assets, and performance tuning documentation by Roland Beisel in #378
  • GH-229 Added the new namastack-outbox-observability module and deprecated legacy metrics/tracing modules by Roland Beisel in #363
  • GH-364 Added retry metadata to OutboxRecordMetadata and documented handler access to delivery state by Roland Beisel in #365
  • GH-360 Included the root cause in partition bootstrap failure logs by Tom Wetjens in #359
  • GH-298 Added smoke tests across example projects by Aleksander Zamojski in #297
  • Updated quickstart, README, messaging, observability, persistence, RabbitMQ, scheduling, handler, configuration, and versioned documentation pages by Roland Beisel in current branch
  • Centralized example dependency versions through an examples version catalog and aligned Testcontainers usage by Roland Beisel in current branch
  • Updated dependency and build tooling versions, including Gradle wrapper, Kotlin plugins, PostgreSQL JDBC driver, MockK, Spring plugin, and webpack-dev-server by dependabot[bot] in #357, #373, #374, #375, #376, #358, #370, #299

Breaking Changes

  • RabbitMQ users must enable correlated publisher confirms with spring.rabbitmq.publisher-confirm-type=correlated; Rabbit auto-configuration now validates this because outbox processing depends on broker acceptance. If namastack.outbox.rabbit.fail-on-unroutable=true is enabled, also configure spring.rabbitmq.publisher-returns=true and spring.rabbitmq.template.mandatory=true.

New Contributors


🙏 Contributors

Special thanks to everyone who contributed to this release:


Full Changelog: v1.6.0...v1.7.0