This roadmap distinguishes the package set available today from planned adapter reach. ADRs capture durable decisions; this document captures sequencing and ecosystem direction.
The current first-party package set is framework-agnostic at the core and provides framework adapters where they are useful:
@mikara89/cap-core for the engine, ports, operation context, transaction
extension points, and in-memory primitives.@mikara89/cap-nest for NestJS module registration, decorators, scanner,
scheduler integration, and CapService.@mikara89/cap-express for Express lifecycle and health router integration.@mikara89/cap-testing for fakes, fixtures, and in-memory engine setup.@mikara89/cap-storage-mikro-orm as the current first-party durable storage
adapter.@mikara89/cap-storage-knex as a current framework-free SQL storage adapter.@mikara89/cap-storage-typeorm as a current framework-free TypeORM storage
adapter.@mikara89/cap-storage-prisma as a current framework-free Prisma storage
adapter using raw SQL and interactive transaction clients.@mikara89/cap-transport-azure-servicebus as the current first-party broker
transport adapter.@mikara89/cap-transport-nestjs-microservices as the current bridge adapter
for existing NestJS ClientProxy registrations.@mikara89/cap-transport-rabbitmq as the current framework-neutral RabbitMQ
adapter with confirmed publishing and manual acknowledgements.@mikara89/cap-transport-kafka as the current framework-neutral Kafka
adapter with acknowledged publishing and success-only offset commits.@mikara89/cap-dashboard-core, @mikara89/cap-dashboard-nest, and
@mikara89/cap-dashboard-express for dashboard service logic and framework
bindings.@mikara89/cap-dashboard as a compatibility alias for the Nest dashboard
package.CAP core standardizes operation context and transaction-manager extension points so storage adapters can bind ORM-specific transaction objects without CAP core depending on any ORM.
Scope:
CapOperationContext<TTx>.CapPublishOptions support for both tx and ctx.PublishStoragePort.savePublish(event, ctx?) as the primary
transaction-aware storage API.savePublishWithTx(event, tx) retained only as deprecated compatibility.CapTransactionManagerPort.@mikara89/cap-testing.v2.2 is not the storage adapter expansion release. Knex, TypeORM, Prisma, and a generic SQL core are not part of the v2.2 minimum scope.
CAP v2.3 hardens the storage contracts and adds first-party Knex, TypeORM, and Prisma storage. SQL-core extraction remains deferred until duplication is proven.
Delivered scope:
@mikara89/cap-storage-knex as a SQL query-builder adapter using
Knex.Transaction contexts.@mikara89/cap-storage-typeorm as an ORM adapter using TypeORM
EntityManager contexts.@mikara89/cap-storage-prisma as a raw-SQL Prisma Client adapter using
Prisma.TransactionClient contexts. It does not require CAP models in the
application Prisma schema.MikroORM remains the current ORM-specific adapter using its EntityManager as
the transaction context. Potential future storage candidates beyond v2.3
include Drizzle, Sequelize, and Mongoose. Raw SQL adapters or a shared SQL core
remain future work only if the current implementations prove enough repeated
logic.
The v2.4 repository roadmap milestone expands transport reach in five ordered PR phases. All five phases are delivered.
defineTransportContract suite, qualify Azure
Service Bus and the NestJS Microservices bridge with fakes, and document the
lifecycle and settlement boundary.@mikara89/cap-transport-rabbitmq with publisher confirms, manual consumer
settlement, conservative topology options, and pinned-broker integration.@mikara89/cap-transport-kafka with acknowledged publishing, native
consumer groups, and success-only manual offset commits.@mikara89/cap-transport-aws-sns-sqs package with SNS publishing, SQS
long-polling, and success-only message deletion.Implementation complete: the five phases above define the v2.4 feature scope, and all five are implemented in the repository.
Release closure pending or package-specific: closing the roadmap milestone
is an operational verification step, not another v2.4 feature phase. Packages
remain independently versioned; the v2.4 milestone does not require every
package to become 2.4.0. A new transport can take its first appropriate
independent release, unchanged packages are not bumped, and dependents move only
when compatibility or dependency ranges require it.
Before declaring the milestone release verified, maintainers must:
gitHead to its package tag target;Event Hubs compatibility, Google Pub/Sub, NATS JetStream, and richer transport capability work remain planned or deferred beyond this completion boundary; they are not v2.4 release-closure criteria.
An explicit cap-core transport capability interface is deferred until
conformance tests demonstrate real portable variation that applications need
to inspect. PR 1 does not claim broker acknowledgement, delayed delivery,
ordering, topology, dead-letter, or request/reply guarantees.
Google Pub/Sub and NATS JetStream are likely v2.5 candidates, not v2.4 minimum scope. Redis Streams, MQTT, and other niche transports remain later or optional ecosystem work.
Likely candidates: