-
-
Notifications
You must be signed in to change notification settings - Fork 0
Roadmap
What's shipped, what's planned, what's explicitly out of scope. Every roadmap item is either implemented or has a triage tier; items below the cut are demand-gated.
This page is a snapshot — for the live planning detail (per-domain breakdown, design notes), the source is docs/kafka-gap-analysis/ in the repo (gitignored internal planning, but the structure is public).
The current capability matrix:
| Surface | Status |
|---|---|
Postgres / MySQL stores with SKIP LOCKED claim |
✅ |
| Polling, notify-waker, streaming, binlog relays | ✅ |
| Idempotent + transactional Kafka producer | ✅ |
kafkajs + @confluentinc/kafka-javascript drivers |
✅ |
| mTLS, SASL/PLAIN, SCRAM, OAUTHBEARER | ✅ |
AWS MSK IAM helper (@eventferry/kafka-iam) |
✅ |
Producer tuning passthrough (lingerMs, batchSize, …) |
✅ |
| OpenTelemetry tracing hook + W3C propagation | ✅ |
Lifecycle hooks (onConnect, onPublish, onError, …) |
✅ |
Error classification (PublishErrorKind taxonomy) |
✅ |
| Explicit per-message partition override | ✅ |
| DLQ enrichment + routing | ✅ |
| Backpressure + quota multiplier | ✅ |
| Schema Registry serializer (Avro / Protobuf / JSON) | ✅ |
| Subject naming strategies (Topic / Record / TopicRecord) | ✅ |
| Schema Registry basic + bearer auth | ✅ |
| Avro key serialization | ✅ |
autoRegister: false for production registries |
✅ |
Admin operations (publisher.admin(), ensureTopics) |
✅ |
validateTopicsOnConnect startup check |
✅ |
publisher.healthCheck() reachability probe |
✅ |
decode + extractTraceContext consumer helpers |
✅ |
defineOutbox(registry) typed events both sides |
✅ |
Power-user escape hatches (rawProducerConfig, customPartitioner, …) |
✅ |
Compression level (compressionLevel) |
✅ |
librdkafka stats hook (onStats) |
✅ |
Producer-fenced restart + onProducerFenced hook |
✅ |
| Concurrent fence-recovery dedup | ✅ |
| TLS CA pinning + SNI documentation | ✅ |
Targeted for upcoming releases. Each item is a single-PR-sized addition unless flagged otherwise.
-
onMessageRetriedhook — fires per per-record retry attempt. Currently onlyonFailed(record, err, willRetry)fires once at failure; observability stacks want a per-retry counter. - Configurable per-topic retry policy —
retry: { perTopic: { "orders.created": { maxAttempts: 10 } } }. Todayretryis global.
- Compatibility mode probe — at
connect(), verify each configured topic's compatibility mode against the registry and warn ifNONE. Catches "no schema enforcement" misconfigurations early. - Reference schema support — pass-through to upstream for Protobuf nested types; documented examples.
- OpenTelemetry messaging metrics — separate from spans, the new OTel
messaging.client.published.messagescounter. Wait until OTel SDK stabilizes the API. - Prometheus metrics helper — small optional package (
@eventferry/kafka-metrics) that registers the standard signals asprom-clientgauges + counters.
-
describeAclsprobe at startup — optional. Verify the configured principal canWriteon each known topic. Catches silent SASL auth that fails per-record.
- DR-aware bootstrap — pass a secondary cluster's brokers + auth, automatic failover when primary is unreachable. Niche; demand-gated.
These will not ship from eventferry. They're either out of the publisher-focused scope, or well-served by existing tools.
| Surface | Why out |
|---|---|
| Kafka Streams runtime | Different problem domain entirely. |
| Kafka Connect runtime | Different operational model. Connect is the right tool for many-to-many CDC; eventferry is for app-emitted domain events. |
| ksqlDB integration | Stream processing is downstream of publishing. |
| Consumer group management | eventferry is publisher-only by design. |
| JMX metrics exporter | Node ecosystem uses Prometheus / OTel; we ship hooks, you wire your stack. |
Built-in scheduler for purgeDone
|
Use cron / a sidecar / k8s CronJob. We don't want a scheduler in the publisher's process. |
We'll build these when someone needs them and is willing to pilot:
-
SASL/GSSAPI (Kerberos) — enterprise on-prem only. librdkafka supports it natively, so the work is exposing the right config on the
confluentdriver. Has not been a blocker yet. -
Apicurio Registry adapter — separate package
@eventferry/schema-registry-apicuriothat conforms to the sameSerializerinterface. Real demand from Red Hat shops. -
AWS Glue Schema Registry — different wire format, separate package
@eventferry/schema-registry-aws. Ship only with demand signal. - MirrorMaker / DR-aware failover — multi-cluster bootstrap + topic-rename handling. Real but niche.
- MongoDB / DynamoDB / Cassandra stores — outbox pattern works on any transactional store. The store interface is intentionally minimal so adapters are small; we'd ship MongoDB first if asked.
-
NATS / RabbitMQ / Pulsar publishers — same shape as
KafkaPublisher. We'd ship NATS first based on community signal. - DELEGATION_TOKEN auth — niche, big-platform-only.
- Open an issue with your use case and what you've already tried. Concrete user stories move items up the queue.
-
Submit a PR with a design doc for non-trivial additions. We treat docs-first design as the norm — see
docs/superpowers/specs/in the repo for the format. -
Sponsor specific work if you need an item shipped on a timeline. Open an issue tagged
sponsorwith your shape.
| Bump | Trigger |
|---|---|
| Patch | Bug fix, docs, internal refactor. No public API change. |
| Minor | Additive public API. New option with a backward-compatible default. |
| Major | Renamed / removed public API, changed default, dropped Node major. Rare. |
A major bump in any single package does NOT force majors elsewhere — independent SemVer. See Migrations and Upgrades for the schema-diff policy across versions.
- Operational rollout → Operations Guide
- Migration path between versions → Migrations and Upgrades
- Symptom-driven help → Troubleshooting
- FAQ → FAQ
Repository · Issues · npm: @eventferry/all · MIT
Get going
Adapters
Type & schema
Security
Operational
- Transactions and EOS
- Admin Operations
- Observability
- Consuming Events
- Dead-Letter Queue
- Reliability and Error Handling
Operations
Reference