Optional NuGet packages that build production patterns on top of SharpCoreDB. Deep dives:
docs/cqrs/README.md·docs/distributed/README.md
- Append-only per-stream storage, global ordered feed
- In-memory + persistent stores, snapshot policies
- Stream replay and projections-friendly reads
- Checkpoint persistence, OpenTelemetry-ready projection metrics
- Built for exactly-once-ish event handling loops
- See
docs/internals/PROJECTIONS_OPEN_TELEMETRY_METRICS.md
- Command/handler abstractions, aggregate root
- Outbox with dead-letter workflow for reliable side-effects
- Quick start:
docs/cqrs/QUICKSTART.md
public record CreateCustomerCommand(string Name, string Email) : ICommand;
public class CreateCustomerHandler : ICommandHandler<CreateCustomerCommand>
{
private readonly IDatabase _db;
public CreateCustomerHandler(IDatabase db) => _db = db;
public Task<Unit> Handle(CreateCustomerCommand cmd, CancellationToken ct)
{
_db.Insert("customers",
new Dictionary<string, object> { ["name"] = cmd.Name, ["email"] = cmd.Email });
return Unit.Task;
}
}- Multi-master replication with vector clocks
- Distributed transactions (2PC)
- See
docs/distributed/README.mdanddocs/SHARPCOREDB_EMBEDDED_DISTRIBUTED_GUIDE.md
Option<T>/Fin<T>/Seq<T> functional wrappers across adapters (see
Providers). Design rationale:
docs/NULLABLE_VS_OPTIONAL_REBUTTAL.md