Streamstone alternatives and similar packages
Based on the "Database" category.
Alternatively, view Streamstone alternatives based on common mentions on social networks and blogs.
Mongo DB9.9 10.0 L1 Streamstone VS Mongo DBThe MongoDB Database
LiteDB9.5 2.1 L3 Streamstone VS LiteDBLiteDB - A .NET NoSQL Document Store in a single data file - https://www.litedb.org
Ignite9.3 9.8 L4 Streamstone VS IgniteApache Ignite
Event Store9.0 8.4 L3 Streamstone VS Event StoreThe stream database optimised for event sourcing
RavenDB8.7 9.9 L2 Streamstone VS RavenDBACID Document Database
SqlKata Query BuilderSQL query builder, written in c#, helps you build complex queries easily, supports SqlServer, MySql, PostgreSql, Oracle, Sqlite and Firebird
Marten7.8 9.0 L5 Streamstone VS Marten.NET Transactional Document DB and Event Store on PostgreSQL
Yessql6.5 0.0 L3 Streamstone VS YessqlA .NET document database working on any RDBMS
Realm Xamarin6.5 7.9 L2 Streamstone VS Realm XamarinRealm is a mobile database: a replacement for SQLite & ORMs
Insight.Database6.2 2.8 L2 Streamstone VS Insight.DatabaseFast, lightweight .NET micro-ORM
BrightstarDb5.1 0.0 L2 Streamstone VS BrightstarDbThis is the core development repository for BrightstarDB.
DBreeze4.9 0.0 Streamstone VS DBreezeC# .NET MONO NOSQL ( key value store embedded ) ACID multi-paradigm database management system.
NReco LambdaParser4.0 0.0 L3 Streamstone VS NReco LambdaParserRuntime parser for string expressions (formulas, method calls). Builds dynamic LINQ expression tree and compiles it to lambda delegate.
ZoneTree3.0 10.0 Streamstone VS ZoneTreeZoneTree is a persistent, high-performance, transactional, ACID-compliant ordered key-value database for NET. It can operate in memory or on local/cloud storage.
RocksDB2.8 10.0 Streamstone VS RocksDB.net bindings for the rocksdb by facebook
StringDB2.4 0.0 Streamstone VS StringDBStringDB is a modular, key/value pair archival DB designed to consume *tiny* amounts of ram & produce *tiny* databases.
SliccDB2.2 0.0 Streamstone VS SliccDBLight Embedded Graph Database for .net
Firebase.Net2.0 0.0 Streamstone VS Firebase.NetC# wrapper over Firebase database REST API
Mailcloud.Hydra1.8 1.7 L5 Streamstone VS Mailcloud.HydraA set of components to take the most advantage of performance and capacity of Azure Storage.
Db4o-gpl1.7 0.0 Streamstone VS Db4o-gplnew Db4o GPL Source Code for Java7+ & .netstardard2.0 Android Xamarin..., the best database project to help you to learn how to make databases
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Streamstone or a related project?
Streamstone is a tiny embeddable library targeted at building scalable event-sourced applications on top of Azure Table Storage. It has simple, functional style API, heavily inspired by Greg Young's Event Store.
By using this project or its source code, for any purpose and in any shape or form, you grant your implicit agreement to all the following statements:
- You condemn Russia and its military aggression against Ukraine
- You recognize that Russia is an occupant that unlawfully invaded a sovereign state
- You support Ukraine's territorial integrity, including its claims over temporarily occupied territories of Crimea and Donbas
- You reject false narratives perpetuated by Russian state propaganda
To learn more about the war and how you can help, click here. Glory to Ukraine! 🇺🇦
- Fully ACID compliant
- Optimistic concurrency support
- Duplicate event detection (based on identity)
- Automatic continuation for both writes and reads (over WATS limits)
- Custom stream and event properties you can query on
- Synchronous (inline) projections and snapshots
- Change tracking support for inline projections
- Friendly for multi-tenant designs
- Sharding support (jump consistent hashing)
- Compatible with .NET Standard 2.0 and .NET Framework 4.6
Installing from NuGet
To install Streamstone via NuGet, run this command in NuGet package manager console:
PM> Install-Package Streamstone
Building from source
To build Streamstone binaries on Windows you will need to have Visual Studio 17 Update 3 or higher and .NET Core SDK 2.0 or higher. To build binaries on Linux use dotnet cli tooling (ie
Running unit tests
Unit tests require Azure Storage Emulator 5.2 or higher, which is currently available only on Windows. Alternatively, you could run against real Azure by setting storage account connection string to Streamstone-Test-Storage user-level environment variable.
Streamstone is just a thin layer (library, not a server) on top of Windows Azure Table Storage. It implements low-level mechanics for dealing with event streams, and all heavy-weight lifting is done by underlying provider.
The api is stateless and all exposed objects are immutable, once fully constructed. Streamstone doesn't dictate payload serialization protocol, so you are free to choose any protocol you want.
Optimistic concurrency is implemented by always including stream header entity with every write, making it impossible to append to a stream without first having a latest Etag. Duplicate event detection is done by automatically creating additional entity for every event, with RowKey value set to a unique identifier of a source event (consistent secondary index).
- Provisioning stream [see]
- Opening stream [[see](Source/Example/Scenarios/S02_Open_stream_for_writing.cs)]
- Writing to stream [[see](Source/Example/Scenarios/S04_Write_to_stream.cs)]
- Reading from stream [[see](Source/Example/Scenarios/S05_Read_from_stream.cs)]
- Additional entity includes [[see](Source/Example/Scenarios/S06_Include_additional_entities.cs)]
- Optimistic concurrency [[see](Source/Example/Scenarios/S08_Concurrency_conflicts.cs)]
- Handling duplicate events [[see](Source/Example/Scenarios/S09_Handling_duplicates.cs)]
- Custom stream metadata [[see](Source/Example/Scenarios/S07_Custom_stream_metadata.cs)]
- Virtual partitions [[see](Source/Streamstone.Tests/Scenarios/Virtual_partitions.cs)]
- Implementing stream directory [[see](Source/Example/Scenarios/S10_Stream_directory.cs)]
- Using snapshots [[see](Source/Example/Scenarios/S06_Include_additional_entities.cs)]
- Creating projections [see]
- Querying events [see]
- Classic Greg Young's CQRS demo using Streamstone [repo]
- Using Streamstone in stateful applications. Event-sourced actors for Project Orleans [see]
While Streamstone allows you to pass any number of events to
Stream.Write, the max batch size limit imposed by Azure Table Storage is 100 entities, therefore:
- The batch will be automatically flushed for every 99 events (100 - 1 header entity)
- The batch will be automatically flushed for every 49 events with id being set (100/2 - 1 header entity)
- You will get back
InvalidOperationExceptionwhen trying to write an event which together with its includes is over max batch size limit
- The actual size in bytes of event payload is not taken into account, so all limitations outlined below still apply
Other limitations of the underlying Azure Table Storage API:
- Maximum size of batch is 4MB
- Maximum size of entity is 1 MB
- Maximum size of property is 64Kb
- Maximum length of property name is 255 chars
- An entity can have up to 255 custom properties
*Note that all licence references and agreements mentioned in the Streamstone README section above are relevant to that project's source code only.