Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.2.2] - 2026-03-26
Added
on_failure/3optional callback onForja.Handlerfor handler-level failure recovery- Error handling guide (
guides/error-handling.md) with retry patterns, Sage integration, and examples - Clear separation:
on_failure/3for handler failures,DeadLetterfor event-level failures
[0.2.1] - 2026-03-26
Added
correlation_idandcausation_idfields for event chain tracing- Automatic propagation of correlation context when handlers emit new events
correlation_idincluded in[:forja, :event, :emitted]telemetry metadataassert_event_caused_by/3andassert_same_correlation/1testing helpers- Correlation & Causation IDs section in event-schemas guide
[0.2.0] - 2026-03-26
Added
Forja.Event.Schemamacro for defining typed event schemas with Zoi validationForja.ValidationErrorstruct wrapping validation errors in a Forja-owned typeschema_versionfield on events for payload versioning and upcasting[:forja, :event, :validation_failed]telemetry eventupcast/2overridable callback for schema version migrations- Event schemas guide (
guides/event-schemas.md) - Payload fields are required by default in schema definitions
emit/3andemit_multi/4accept schema modules as the type argument- Testing helpers accept schema modules in addition to string types
- Zoi as required dependency for event schema validation
Changed
emit/3andemit_multi/4now require aForja.Event.Schemamodule (string-based emission removed)
[0.1.0] - 2026-03-26
Added
- Dual-path event processing: GenStage (fast) + Oban (guaranteed)
- Three-layer exactly-once deduplication (advisory lock + processed_at + Oban unique)
Forja.emit/3for atomic event emissionForja.emit_multi/4for transactional event emission with Ecto.MultiForja.Handlerbehaviour for event handlersForja.DeadLetterbehaviour for dead letter handlingForja.Testingmodule with test helpersForja.Telemetrywith 9 telemetry event typesReconciliationWorkerfor periodic stale event recovery- Idempotency key support for duplicate prevention
- Igniter-based installer (
mix forja.install)