MCPcopy Create free account
hub / github.com/cosmonic-labs/concordance

github.com/cosmonic-labs/concordance @concordance-provider-v0.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release concordance-provider-v0.1.1 ↗ · + Follow
480 symbols 866 edges 48 files 60 documented · 12% 1 cross-repo links updated 2y agoconcordance-provider-v0.1.0 · 2023-05-02★ 625 open issues

Browse by type

Functions 335 Types & classes 145
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Concordance from Cosmonic

Concordance is an open source, opinionated event sourcing framework from Cosmonic. Building on the power, portability, speed, and scalability of wasmCloud, Concordance allows you to reason about your application using the fundamental building blocks of event sourcing: * Aggregates - WebAssembly components that derive state from an event stream, validate incoming commands, and emit events in response to those commands. * Projectors - WebAssembly components that project read-optimized data (aka materialized views) based on streams of incoming events * Process Managers - Known as sagas in other paradigms, a process manager is the inverse of an aggregate: it processes inbound events and starts, advances, and stops processes by emitting the corresponding commands. * Stateless Event Handlers - used for entities such as notifiers and gateways, you can build WebAssembly components that receive events on a stream and then execute whatever you choose for your business logic.

"Contraints liberate, liberties constrain" - Runar Bjarnason

This quote is a foundational principle behind this event sourcing library. You'll find that aggregates are unable to do anything other than return a list of events. They are unable to produce side-effects, which is a good thing:tm:. Likewise, process managers cannot produce side-effects, they can only return a list of commands. Side-effects are explicitly forced into the perview of notifiers (stateless event handlers).

For information on how to operate Concordance-based applications in production as well as how to build applications using Concordance, please take a look at the developer's guide.

⚠️ Under Development ⚠️ - _Concordance is under heavy development right now and, as such, the APIs and developer experience will be rapidly changing (for the better). Building applications on it now should be done with the idea of rapid change in mind.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 173
Function 162
Class 103
Interface 35
Enum 7

Languages

Rust100%

Modules by API surface

examples/bankaccount/projector/src/eventsourcing.rs48 symbols
examples/bankaccount/process_manager/src/eventsourcing.rs48 symbols
examples/bankaccount/aggregate/src/eventsourcing.rs48 symbols
capability-provider/src/eventsourcing.rs48 symbols
capability-provider/src/config.rs35 symbols
crates/concordance-gen/src/model.rs33 symbols
examples/bankaccount/aggregate/src/lib.rs19 symbols
capability-provider/src/natsclient/mod.rs14 symbols
examples/bankaccount/projector/src/store.rs12 symbols
capability-provider/src/wcprovider.rs12 symbols
capability-provider/src/state.rs11 symbols
examples/bankaccount/model/src/events.rs10 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add concordance \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page