Skip to content

v0.2.0

Choose a tag to compare

@Jank1310 Jank1310 released this 10 Mar 18:51
· 2 commits to main since this release

Domain Events

Add fire-and-forget domain events via NATS JetStream.

New exports

  • DomainEvent — event type with id, domain, type, orgId, and payload
  • EventHandler — handler signature (context, event) => Promise<void>

New methods on Kmicro

  • publish(event) — publishes to {prefix}.{orgId}.{domain} with JetStream deduplication via msgID
  • subscribe(streamName, consumerName, handler) — consumes from an existing JetStream stream/consumer with ack/nak/term semantics

Details

  • Subject convention: {prefix}.{orgId}.{domain} (prefix configurable via constructor options, default "events")
  • OTel tracing: producer spans on publish, consumer spans on subscribe
  • Streams and consumers are created in infrastructure, not by kmicro
  • On handler error → nak() (JetStream retries), on unmarshal failure → term() (no retry)
  • New dependency: @nats-io/jetstream@3.3.1