event-driven-messaging
Installation
SKILL.md
Event-Driven Messaging
Design for at-least-once delivery unless the complete system proves stronger semantics.
Event contract
- Use an immutable event envelope with
eventId,eventType,occurredAt,schemaVersion, and payload. - Treat published schemas as APIs. Add fields compatibly and never silently change meaning.
- Put correlation and causation IDs in headers or the envelope.
- Do not publish JPA entities or framework-specific serialization shapes.
Producer rules
- Publish only after the originating state change is durable.
- Use a transactional outbox when database state and broker publication must agree.
- Use deterministic partition keys when per-aggregate ordering matters.
- Configure delivery timeout and acknowledgements explicitly.