{"repo":"yevhen/Streamstone","free":true,"listed":false,"github":"https://github.com/yevhen/Streamstone","clone":"git clone https://github.com/yevhen/Streamstone.git","description":"Event store for Azure Table Storage","language":"C#","stars":403,"topics":["event-sourcing","azure"],"license":null,"category":"deployment-docker-iac","readme_excerpt":"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. Features + 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 dotnet build ). Running unit tests Windows/Linux/MacOs Use Azurite npm package to run tests and example app against an emulated table storage service. WARNING: Azurite doesn't fully emulate Azure Table Storage functionality so you may have some of the tests failing. NOTE: Alternatively, you could run against real Azure by setting storage account connection string to Streamstone-Test-Storage user-level environment variable. Design Streamstone is just a thin layer (","default_branch":null,"files":null,"tree":[],"storefront":"/r/yevhen","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/yevhen/Streamstone/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}