LiteBus v7 roadmap
Version 7 should make the guarantees that matter in production explicit, measurable, and portable across providers. The goal is not to remove LiteBus's independent package seams. Those seams are the reason a service can choose one durable axis, one broker, and one store without pulling unrelated SDKs into its process.
Research basis
- .NET support policy keeps the runtime support window visible when v7 chooses its baseline.
- OpenTelemetry messaging semantic conventions define producer, consumer, process, settle, batch, destination, and context propagation concepts that LiteBus can expose without coupling core packages to a host framework.
- CloudEvents provides a stable event envelope and protocol ecosystem for adapter-level interoperability.
- .NET Aspire integrations show a host-level path for composing databases, brokers, and connection information while keeping the LiteBus core host-neutral.
Priority 0: correctness and recovery
Lease operations after the v6 fencing baseline
v6 already assigns a monotonically increasing inbox/outbox lease generation, checks owner
plus generation on renewal and terminal persistence, uses database clocks for relational
leases, and reports skipped terminal writes through PersistResult.
- Add operator-facing lease history without exposing configured worker labels as metric dimensions.
- Evaluate an explicit graceful-shutdown lease release contract for work that has not started dispatch.
- Add long-running contention and database failover suites after every supported v6 provider passes the shared lease contract.
Saga application ledger
- Record command application intent and result under the saga correlation key.
- Serialize or conditionally apply concurrent commands at the storage boundary.
- Make state and inbox terminal persistence one documented transaction contract where the provider supports it, and expose an explicit compensation path where it does not.
- Add crash-window tests between state commit, inbox commit, and process restart.
Versioned payload protection
- Define a versioned encrypted payload envelope with algorithm, key identifier, nonce, authentication tag, and associated-data contract.
- Fail closed on context mismatch and provide a migration tool for old envelopes.
- Add key rotation, maximum ciphertext size, and redacted failure diagnostics to every provider conformance suite.
Priority 1: provider and transport parity
Conformance kit
- Move provider conformance fixtures into a packable
LiteBus.Conformancepackage that depends only on abstractions and test framework contracts. - Require each provider to publish a capability matrix for leases, transactions, strict idempotency, cleanup limits, and cross-process behavior.
- Add a CI matrix for PostgreSQL, EF Core, SQLite, AMQP, Kafka, Azure Service Bus, and SQS.
Transport destination and safety contracts
v6 already separates provider-neutral maximum-in-flight admission from native prefetch,
SQS receive batching, Azure callback concurrency, and inbox store batch size. Every ingress
adapter also exposes the same bounded payload, trusted-header, identity, authorization, and
batch settings through TransportInboxIngressSafetyOptions. The process-local transport
also bounds queued and in-flight deliveries per destination and applies lossless publisher
backpressure.
- Introduce typed destination records for Azure topic subscriptions, queue names, Kafka consumer groups, AMQP exchange routes, and SQS queue URLs.
- Add publisher confirmation, dead-letter, requeue, cancellation, and shutdown conformance scenarios to every transport.
Priority 2: observable operations
OpenTelemetry alignment
- Add an opt-in semantic-convention mode for messaging spans and document the transition.
- Emit consistent producer, consumer/process, receive, settle, and batch attributes.
- Use links to message creation context for fan-out and preserve broker delivery identity as a separate low-cardinality attribute.
- Add metrics for lease loss, retry delay, requeue, dead-letter, settlement failure, and queue age, with bounded label values.
Priority 3: developer experience
Source generation and trimming
- Add an optional source generator for message contracts and handler descriptors.
- Keep reflection registration as a compatibility path and mark reflection-heavy APIs with trimming annotations.
- Add NativeAOT smoke builds for the core mediator, in-memory durable path, and one broker adapter.
Host composition
- Publish an optional Aspire integration package under the host-adapter role.
- Generate AppHost resource bindings for selected brokers and stores without adding Aspire references to core or abstraction packages.
- Keep generic hosting manifest registration as the single source of startup tasks, background services, and diagnostics.
Documentation and examples
- Generate package and adapter catalog pages from the dependency graph so package names do not drift from code.
- Add runnable examples for inbox only, outbox only, saga plus inbox, and one provider per transport family.
Priority 4: supply chain and release quality
- Add a scheduled transitive vulnerability report and fail releases on high-severity advisories after a maintainer review window.
- Produce SBOM and provenance attestations for NuGet packages and the documentation site.
- Enforce changed-lines coverage and publish a versioned baseline rather than relying on a manually inspected percentage.
- Add release smoke tests that install packages from the generated feed into a clean sample.
Decisions to preserve
- Keep inbox and outbox as separate durable axes.
- Keep storage, dispatch, ingress, broker, and host adapters independently installable.
- Keep per-module DI and Autofac shells in v7.
- Keep shared contracts abstract and move cross-axis mapping into feature bridges.
- Treat a package merge, persisted-format change, or public mediator return-type change as a versioned decision with migration notes and explicit maintainer approval.
Exit criteria
v7 is ready for release when the lease and saga correctness suites pass across all supported stores, provider capability matrices are published, messaging telemetry is stable, release artifacts include SBOM and provenance attestations, NativeAOT smoke builds pass, and a clean consumer sample can install only the packages it needs.