Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,12 @@ Core (zero deps) → Abstractions → Application → Infrastructure → Adapter

## Documentation

_Docs and samples will be populated when the package is extracted to its own repo. In the meantime, browse the source under `src/Framework/` or the Nexus consumer code for end-to-end examples._
The full documentation site is being built at [sassy-solutions.github.io/compendium](https://sassy-solutions.github.io/compendium/) (DocFX-powered). In the meantime:

- [ROADMAP.md](ROADMAP.md) — themes, what's next, and what's out of scope
- [CONTRIBUTING.md](CONTRIBUTING.md) — build, test, conventions
- [docs/adr/](docs/adr/) — architecture decision records
- Source under `src/` and the Nexus consumer code for end-to-end examples

## Who's using Compendium?

Expand Down
68 changes: 68 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Compendium Roadmap

> Last updated: 2026-04-25

This document captures where Compendium is heading. It is a **living document**: priorities may shift as we learn from production usage and community feedback. **No date here is a commitment.** If you depend on a specific item, please open a Discussion to talk about it.

## Vision

Compendium exists to make event-sourced, multi-tenant SaaS development on .NET pragmatic and boring — in the best sense. We've built the same plumbing too many times across products: aggregate base classes, an event store, projection runners, tenant resolution, billing adapters, identity glue. Compendium is that plumbing extracted, hardened, and made reusable so that domain-focused teams can spend their time on the actual product.

The framework will stay small, hexagonal, and dependency-light. We optimize for the **second product** built on Compendium, not the first — meaning patterns must compose, abstractions must be honest, and breaking changes must be rare and well-signaled.

## Themes

The roadmap is organized around five durable themes:

- **Stable foundations** — Core APIs in `Compendium.Core` and `Compendium.Abstractions.*` reach 1.0 and follow strict semantic versioning. Breaking changes only on major bumps, with migration notes.
- **Multi-tenancy first-class** — Every adapter and infrastructure piece is tenant-aware by default. Cross-tenant leaks are bugs, not edge cases.
- **Adapter ecosystem** — Cover the SaaS-essentials surface (billing, identity, AI, email, observability) with first-party adapters, plus a clear extension model for community-built ones.
- **Production-grade observability** — Structured logs without PII (see [ADR 0004](docs/adr/0004-multi-tenancy-strategy.md) and the GDPR work in `PiiMasking`), OpenTelemetry traces, and meaningful metrics out of the box.
- **Developer experience** — Runnable samples for every major adapter, copy-pasteable snippets in docs, conventional patterns documented as ADRs.

## What's next

### 2026 Q2 — Saga pattern

Durable workflows for orchestrating multi-aggregate business processes. Today, coordinating "place order → reserve inventory → charge card → notify customer" across boundaries requires hand-rolled state machines. The saga pattern brings this in-framework.

Scope under consideration:
- **Process managers** — Long-running, event-driven coordinators with their own state.
- **Compensation** — Distributed rollback when a step in the saga fails.
- **Persistence** — Saga state stored in PostgreSQL (primary), with Redis evaluated for high-throughput cases.
- **Idempotency primitives** — Saga steps must be re-runnable without side effects.
- **Observability** — First-class traces and timelines for in-flight sagas.

Related discussion: open a thread under the `Roadmap` category if you have a use case you'd like considered.

### 2026 Q3 — New adapters

Additional adapters will be announced as the quarter approaches. Priorities are informed by Discussions and by demand signals from production deployments. If you have a strong need for a specific integration, please open a Discussion with the `roadmap-input` label.

Copilot AI Apr 25, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GitHub Discussions don’t support issue labels, so “open a Discussion with the roadmap-input label” is not actionable as written. Suggest rephrasing to either (a) open an Issue with the roadmap-input label, or (b) open a Discussion and note that maintainers will create/label a tracking issue as roadmap-input.

Suggested change
Additional adapters will be announced as the quarter approaches. Priorities are informed by Discussions and by demand signals from production deployments. If you have a strong need for a specific integration, please open a Discussion with the `roadmap-input` label.
Additional adapters will be announced as the quarter approaches. Priorities are informed by Discussions and by demand signals from production deployments. If you have a strong need for a specific integration, please open a Discussion describing the use case; maintainers may create or label a tracking issue as `roadmap-input`.

Copilot uses AI. Check for mistakes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Applied — see commit f47c8dc. Discussions don't carry labels, so the workflow is now: user opens a Discussion → maintainer creates/labels a tracking issue as roadmap-input.


### 2026 Q4 — New adapters

The cadence of new adapters continues. Specifics will be sharpened during Q3 based on what landed and what didn't.

## Out of scope (current)

We say no often, and we say it on purpose. The following are **not** planned, in the interest of keeping Compendium focused:

- **Built-in UI / dashboard** — Bring your own. Compendium exposes the data; rendering it is your stack's job.
- **Message broker abstraction** — If you need Kafka, RabbitMQ, NATS, or similar, use those libraries directly. Compendium will not ship a lowest-common-denominator broker interface.
- **Multi-language SDK** — .NET only. Server boundaries are HTTP/JSON; clients can be in any language.
- **ORM replacement** — Compendium is not an ORM. Read models that need rich querying should use the right tool (EF Core, Dapper, raw SQL) for that read model.
- **Legacy framework support** — `.NET Standard 2.0`, `.NET Framework`, etc. are not targets. Compendium tracks the latest LTS / current .NET.

## How to influence the roadmap

- **Open a Discussion** under the [Roadmap](https://github.com/sassy-solutions/compendium/discussions/categories/roadmap) category (or under `Ideas` if Roadmap doesn't exist yet).
- **Vote with 👍** on issues tagged [`roadmap-input`](https://github.com/sassy-solutions/compendium/issues?q=is%3Aissue+label%3Aroadmap-input).
- **Contribute** — see [CONTRIBUTING.md](CONTRIBUTING.md). Roadmap items are open to community implementation; coordinate via the relevant Discussion or issue first.

## Past releases

See [CHANGELOG.md](CHANGELOG.md) for what has shipped.

---

This roadmap is a living document. No date here is a commitment.
Loading