StreamStore 0.12.0
dotnet add package StreamStore --version 0.12.0
NuGet\Install-Package StreamStore -Version 0.12.0
<PackageReference Include="StreamStore" Version="0.12.0" />
paket add StreamStore --version 0.12.0
#r "nuget: StreamStore, 0.12.0"
// Install StreamStore as a Cake Addin #addin nuget:?package=StreamStore&version=0.12.0 // Install StreamStore as a Cake Tool #tool nuget:?package=StreamStore&version=0.12.0
StreamStore
Asynchronous event sourcing.
Library provides a logical layer for storing and querying events as a stream.
Heavily inspired by Greg Young's Event Store and Streamstone
solutions.
Overview
Designed to be easily extended with custom database backends.
Despite the fact that component implements a logical layer for storing and querying events as a stream,
it does not provide functionality of DDD aggregate
, such as state mutation, conflict resolution etc., but serves more as persistence layer
for it.
Storage packages
Package | Description | Multitenancy | Package |
---|---|---|---|
StreamStore.Sql.PostgreSql | PostgreSQL implementation |
✅ | |
StreamStore.Sql.Sqlite | SQLite implementation |
✅ | |
StreamStore.InMemory | In-memory implementation is provided for testing and educational purposes only |
✅ | |
StreamStore.S3.AWS | Amazon S3 implementation |
❌ | |
StreamStore.S3.B2 | Backblaze B2 implementation |
❌ |
Features
The general idea is to highlight the common characteristics and features of event sourcing storage:
- Asynchronous read and write operations.
- Multitenancy support.
- Automatic provisioning of storage schema.
- Event ordering.
- Serialization/deserialization of events.
- Optimistic concurrency control.
- Event duplication detection based on event ID.
- Database agnostic test framework, including benchmarking test scenarios.
- Binary serialization support.
More information you can find in the documentation.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. 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 was computed. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Hosting.Abstractions (>= 8.0.1)
- StreamStore.Contracts (>= 0.9.0)
- System.Threading.Channels (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.