Skip to content

makmu/ccc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CCC — Command Context Consistency Example

CCC is an example application for illustrating Command Context Consistency (CCC).

It implements a very basic version of the ideas behind the Calinga system: tenants, projects, translation keys, and related write-side business rules.

The repository is not intended to be a generic content management system. Its main purpose is to explore and demonstrate an event-sourced write model based on minimal command-specific context slices and conditional appends.

Repository Structure

  • backend/ - ASP.NET Core backend with the event-sourced write model and API
  • frontend/ - React frontend for exploring and exercising the sample application
  • presentation/ - standalone React/RevealJS slide deck used to explain CCC in this repository
  • docs/architecture/ - architecture decision records for the main technical choices

Quick Start

Backend

dotnet build backend/CCC.sln
dotnet run --project backend/CCC/CCC.csproj

Swagger UI is available at http://localhost:5039/swagger in development.

Frontend

cd frontend
npm install
npm run dev

UI is available at http://localhost:5173. Requires the backend to be running.

Presentation

cd presentation
npm install
npm run dev

The browser-hosted presentation runs on Vite's default dev port unless that port is already in use.


Further Reading

Architecture

Document Description
ADR-001: Use Architecture Decision Records Establishes the ADR format and file naming convention used in this project
ADR-002: Event Sourcing with Command-Context-Consistency Defines the core architectural model used in this example
ADR-003: PostgreSQL as Event Log Database Explains why PostgreSQL is used as the append-only event log
ADR-004: Dapper as Event Log Data Access Library Explains why the event store uses Dapper and explicit SQL
ADR-005: No CRUD Terminology in Requests, Commands, and Events Defines the naming convention for commands, requests, and events

About

Command Context Consistency Example Application

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors