v0.12.0

Version v0.12.0, dated September 5, 2026, fixes 18 findings affecting routing, delivery, concurrency and component lifecycle. It adds 23 regression tests.

Upgrade

Go 1.27.0 or later is required. Upgrade the core and each optional module you use together:

go get gitlab.com/tranchida/gocamel@v0.12.0
go get gitlab.com/tranchida/gocamel/components/kafka@v0.12.0

All published components and observability modules have matching v0.12.0 tags and require the corrected core version.

Behavior changes

  • Each route step receives the preceding step’s pending output, including headers. Out is then reset. Read the completed message through GetResponse().
  • PollEnrich supports seda, chan and custom PollingEndpoint implementations. It preserves remaining queued messages and rejects unsupported endpoints before consuming. A zero timeout is non-blocking.
  • Kafka retries a failed delivery before reading another record. Failed commits retry without repeating successful processing. Configure route error handling to resolve permanent failures, which otherwise block this consumer until stopped.
  • Parallel Split, Multicast and RecipientList aggregate in input order after all workers complete. Each processed branch completes its callbacks; aggregation panics become ErrProcessorPanic. Supported mutable split parts are copied before workers start.

Other fixes

Lifecycle status queries no longer deadlock during startup/shutdown, and message-history cache reads are synchronized. MongoDB preserves _id on failed saves; FTP serializes shared-connection transfers; IMAP IDLE responds to mailbox notifications; Cron waits for active jobs on stop or pause. TCP operations honor cancellation and write timeouts. Redis routes can restart and shared clients remain available to their active owners. File URIs preserve trailing-slash directory intent. Invalid Resequence expressions report build errors, and repeated Prometheus interceptor registration reuses compatible collectors.

See core concepts, EIP contracts and component details for the updated contracts.