Sekiban.Testing 0.15.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package Sekiban.Testing --version 0.15.1                
NuGet\Install-Package Sekiban.Testing -Version 0.15.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sekiban.Testing" Version="0.15.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Sekiban.Testing --version 0.15.1                
#r "nuget: Sekiban.Testing, 0.15.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Sekiban.Testing as a Cake Addin
#addin nuget:?package=Sekiban.Testing&version=0.15.1

// Install Sekiban.Testing as a Cake Tool
#tool nuget:?package=Sekiban.Testing&version=0.15.1                

Sekiban

Sekiban - Event Sourcing Framework using .NET. Can store data into Cosmos DB and Dynamo DB

Logo is under redesign process.

What is Sekiban?

Sekiban is an application development framework that leverages Event Sourcing and CQRS principles. Built with C# and .NET Core 7+, it allows developers to use a declarative API to create event sourcing applications. Sekiban supports various event stores such as Microsoft Azure Cosmos DB and Amazon Dynamo DB, facilitating deployment on either Azure or AWS.

Understanding Event Sourcing and CQRS

If you've landed here, you're likely already familiar with Event Sourcing and CQRS. However, if you require more detailed insights, Greg Young's informative YouTube talk might be of assistance. Check out the transcript of Greg's presentation at the Code on the Beach 2014 event on CQRS and Event Sourcing. Greg suggests creating your event sourcing system instead of relying on frameworks, a viewpoint I share, as constructing your framework can deepen your understanding of event sourcing concepts.

However, we recognize many developers prefer concentrating on business logic and swiftly proceeding with tools and document databases. Given the recent advances in database speed and scalability across the cloud, event sourcing can be quite efficient with the use of frameworks and cloud solutions. Fortunately, as Sekiban is open-source, developers wishing to delve deeper can experiment with the source code housed in the repository.

Disclaimer: Despite using a framework, it's essential for developers to be familiar with event sourcing concepts, especially when optimizing Query performance for a growing user base and data set post-launch. Adequate knowledge of Event Sourcing and CQRS is mandatory when converting it to a microservice or improving performances.

Key Features of Sekiban

Enhance your application development experience with Sekiban suited for those who prioritize efficiency and effectiveness:

  • Simple Commands and Events: Facilitates straightforward creation of functionality within your application.
  • Publish-only Commands and Events: Provides way to save events without projecting aggregates.
  • Optimistic Aggregate Version Check: Enables efficient conflict detection in concurrent environments.
  • Event Versions: Allows for improved forward compatibility.
  • Single/Multi Aggregate Projections: Supports projections at both individual and multiple aggregate levels.
  • Projections Snapshots: Offers the ability to capture the state of a projection at a certain point in time.
  • Large Snapshots Storage: Accommodate sizable snapshots using Azure Blob Storage or Amazon S3.
  • Built-in Testing Framework: Simplifies testing with an integrated suite.
  • Cosmos DB / Dynamo DB Datastore: Provides scalable and globally distributed data storage solutions.
  • Tenant Partitions: Facilitates separation of data based on tenant for easier data management and handling.
  • Query from Multiple Projections: Enables querying from a range of projections for more dynamic data analysis.
  • Command and Query Web API Generator with Swagger Support: Streamlines API design, building, and documentation.

These, coupled with many more features, allow developers to focus on business aspects, implementing commands, events, projections, tests, and queries for practical solutions without unnecessary complexity.

Compatibility

Sekiban is compatible with .NET 7 and 8.

For Cosmos DB, Sekiban supports the Hierarchical Partition Key feature. This enables more efficient querying using Cosmos DB by creating a Tenant (or Root Partition Key), Aggregate Type, and Partition Key.

When using Dynamo DB with Sekiban, you need to set up a Partition Key and Sort Key.

Scale of Sekiban Projects

As of Sekiban version 0.14, the framework doesn't have built-in materialized view helper features. Sekiban's Live Projection capability is well-suited for small to medium-sized systems. Typically, Sekiban can handle Live Projections provided the system memory can accommodate the size of the Multiple Projections.

For more insights on Live Projections, please reference this informative article by Anton Stöckl: Live Projections for Read Models with Event Sourcing and CQRS.

Developers can implement materialized views using Cosmos DB's and Dynamo DB's change feed feature. Although creation of materialized views with Change Feed is a straightforward process, it does not directly pertain to the Sekiban Framework's core functions, hence it hasn't been included within the framework.

Open Source

Sekiban is released as open source under the Apache 2.0 license. You can view our License here. We welcome developers to fork the project, fix bugs, or add new features as they wish. For those interested in contributing, we offer a detailed Contribution Guideline and Code of Conduct. J-Tech Japan owns this project and determines its future direction.

Documentation

We are planning to deploy documentation, eventually please see

https://github.com/J-Tech-Japan/Sekiban/blob/main/docs/docfx_project/articles/intro.md

Support and Training

J-Tech Japan welcomes sponsors for this project to help maintain a high-quality framework. If you require training or seminars, please contact us at sekibanadmin@jtechs.com.

Contribution Guideline

Code of Conduct

License

Apache 2.0 See License

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Sekiban.Testing:

Package Downloads
Sekiban.Infrastructure.Cosmos

Sekiban - Event Sourcing Framework CosmosInfrastructure

Sekiban.Infrastructure.Dynamo

Sekiban - Event Sourcing Framework Dynamo Infrastructure

Sekiban.Infrastructure.Postgres

Sekiban - Event Sourcing Framework Dynamo Infrastructure

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.22.0-preview7 0 11/14/2024
0.22.0-preview6 0 11/14/2024
0.22.0-preview5 183 10/18/2024
0.22.0-preview4 132 9/14/2024
0.22.0-preview3 135 9/6/2024
0.22.0-preview2 128 9/3/2024
0.22.0-preview1 117 9/3/2024
0.21.2 551 8/17/2024
0.21.1 150 8/16/2024
0.21.0 143 8/15/2024
0.20.7 150 8/15/2024
0.20.6 100 8/2/2024
0.20.5 116 8/1/2024
0.20.4 81 7/31/2024
0.20.3 301 7/26/2024
0.20.2 176 6/25/2024
0.20.1 151 6/23/2024
0.20.0 142 6/22/2024
0.19.6 135 6/21/2024
0.19.5 133 6/21/2024
0.19.4 135 6/19/2024
0.19.3 132 6/14/2024
0.19.2 121 6/12/2024
0.19.1 196 5/24/2024
0.19.0 284 4/26/2024
0.18.5 171 4/24/2024
0.18.4 176 4/11/2024
0.18.3 230 3/30/2024
0.18.2 520 3/26/2024
0.18.1 155 3/7/2024
0.18.0 269 3/5/2024
0.17.10 178 3/3/2024
0.17.9 157 2/29/2024
0.17.8 147 2/29/2024
0.17.7 147 2/27/2024
0.17.6 147 2/27/2024
0.17.5 145 2/16/2024
0.17.4 202 2/15/2024
0.17.3 175 2/13/2024
0.17.2 180 1/21/2024
0.17.1 182 1/18/2024
0.17.0 140 1/17/2024
0.16.3 276 1/10/2024
0.16.2 221 1/5/2024
0.16.1 205 12/30/2023
0.16.0 162 12/30/2023
0.15.5 258 12/26/2023
0.15.4 153 12/26/2023
0.15.3 298 11/18/2023
0.15.2 283 11/3/2023
0.15.1 208 10/27/2023
0.15.0 339 10/27/2023
0.14.8 164 10/24/2023
0.14.6 366 9/30/2023
0.14.5 285 9/26/2023
0.14.4 161 9/26/2023
0.14.3 150 9/20/2023
0.14.2 176 9/8/2023
0.14.1 316 8/24/2023
0.14.0 183 8/24/2023
0.13.6 322 7/29/2023
0.13.5 198 7/29/2023
0.13.4 200 7/28/2023
0.13.3 224 7/21/2023
0.13.2 210 7/21/2023
0.13.1 208 7/18/2023
0.13.0 212 7/14/2023
0.12.6 223 7/13/2023
0.12.5 219 7/13/2023
0.12.4 214 7/8/2023
0.12.3 221 7/8/2023
0.12.2 219 7/8/2023
0.12.1 223 6/27/2023
0.12.0 199 6/22/2023
0.11.4 229 6/6/2023
0.11.3 223 6/5/2023
0.11.2 305 5/25/2023
0.11.1 224 5/25/2023