Savvy I/O for .NET

An open-source project (MIT license) that provides a SOLID and clean .NET class library for writing DDD, CQRS and Event Sourcing applications.

It is, by heart, free, flexible and built to extend and boost your agile codebelt.

Savvy I/O architecture diagram

NEWv5.0.12

DDD, CQRS and Event Sourcing? It's all here.

Savvy I/O is a composable .NET framework for DDD, CQRS and Event Sourcing, built from small, focused building blocks rather than a monolithic dependency. Adopt only the capabilities you need, keep infrastructure at the edges, and your domain at the center.

Open Source

Savvy I/O for .NET is available on GitHub and is licensed under The MIT License (MIT) and gives freedom for commercial projects; free of charge.

NuGet Native

All Savvy I/O assemblies are publicly available as NuGet packages on NuGet.org.

Documentation

Savvy I/O is both documented on a per-assembly level and with DocFX. This provides full IntelliSense and reference lookup while you make great software.

Architecture

Savvy I/O separates domain and application abstractions from persistence, messaging, serialization and other infrastructure concerns. Dependencies point toward stable abstractions, allowing implementations to evolve without reshaping the core domain.

Composable by Design

34 focused packages provide fine-grained control over your dependency surface. Prefer convenience? Savvyio.App brings the broader Savvy I /O experience together in a single package without changing the underlying architecture.

Source Link

Worried about debugging? Don't be - all Savvy I/O packages published to NuGet is 100% Source Link enabled.

Integration support

EF Core

Extensions for Microsoft Entity Framework Core support both the Repository pattern (for Commands) and the Data Access Object pattern (for Queries).

Dapper

Extensions for Dapper by Stack Overflow support the Data Access Object pattern that is a great fit for Queries.

AWS

Extensions for AWS SQS and AWS SNS support distributed architecture with both Command Queue and Event Bus.

RabbitMQ

Extensions for RabbitMQ Worker Queue and Publish/Subscribe support distributed architecture with both Command Queue and Event Bus.

NATS

Extensions for NATS Work-Queue Stream and NATS Core Publish-Subscribe support distributed architecture with both Command Queue and Event Bus.

Azure

Extensions for Azure Storage Queue and Azure Event Grid support distributed architecture with both Command Queue and Event Bus.

CloudEvents

Extensions convert both Commands and Integration Events into lightweight messages, with opinionated support for CloudEvents when publishing Integration Events.

Marshaller

IMarshaller abstracts (de)serialization, giving you flexibility to support endless formats without binding your code to a single technology.

Michael, creator of Savvy I/O

About the author

The author of Savvy I/O for .NET is also the founder of Cuemon for .NET, a project where a lot of experience has been gained over the years.

When not contributing to the open-source community, Michael (aka Gimlichael), is working as a Lead Software Engineering Architect.

Binary data is coursing through his veins — energizing to code with passion.