From 21b4910815ef0c9a46c1c17621059c29163d3fed Mon Sep 17 00:00:00 2001 From: sacha Date: Sat, 25 Apr 2026 10:00:02 +0200 Subject: [PATCH 1/2] docs: publish public ROADMAP.md (POM-181) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vision, themes, and quarterly outlook for 2026 — saga pattern in Q2, new adapters in Q3 and Q4 (specifics deferred). Out-of-scope section to focus contributions; "How to influence" section pointing at Discussions and the new roadmap-input label. README updated to link ROADMAP and the upcoming docs site. --- README.md | 7 +++++- ROADMAP.md | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 ROADMAP.md diff --git a/README.md b/README.md index 8b2cd82..e98d7e8 100644 --- a/README.md +++ b/README.md @@ -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? diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..07018d3 --- /dev/null +++ b/ROADMAP.md @@ -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. + +### 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. From f47c8dcfe7b438d60a99d4fe37e1ec730a0b3c82 Mon Sep 17 00:00:00 2001 From: sacha Date: Sun, 26 Apr 2026 14:04:51 +0200 Subject: [PATCH 2/2] docs(roadmap): clarify roadmap-input flow (Copilot review feedback) GitHub Discussions don't support issue labels, so the previous wording "open a Discussion with the roadmap-input label" was not actionable. Reframe so users open a Discussion describing the use case, and clarify that maintainers may create or label a tracking *issue* as roadmap-input. Per Copilot reviewer feedback on PR #15. --- ROADMAP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ROADMAP.md b/ROADMAP.md index 07018d3..ea8bde5 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -37,7 +37,7 @@ Related discussion: open a thread under the `Roadmap` category if you have a use ### 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. +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`. ### 2026 Q4 — New adapters