A tiny embeddable library for building scalable event-sourced applications on Azure Table Storage.
Streamstone is a lightweight embeddable library that provides event store functionality for Azure Table Storage. It enables developers to build scalable event-sourced applications by handling low-level mechanics like optimistic concurrency, duplicate detection, and automatic continuation over storage limits. The library offers a simple, functional API inspired by Greg Young's Event Store, making it easy to integrate into .NET applications.
Developers building event-sourced applications on the Microsoft Azure platform, particularly those using Azure Table Storage for persistence and needing ACID compliance and scalability features.
Streamstone offers a minimal, library-based approach to event sourcing without requiring a separate server, reducing infrastructure complexity. Its stateless, immutable API and support for custom serialization give developers flexibility while ensuring reliability through features like optimistic concurrency and duplicate event detection.
Event store for Azure Table Storage
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Ensures reliable event storage with fully ACID compliant operations, critical for event-sourced applications, as highlighted in the features.
Built-in handling of concurrent writes prevents data conflicts by including stream header entities with every write, as described in the design section.
Doesn't dictate serialization protocols, allowing developers to choose any method for event payloads, giving full control as per the philosophy.
Designed to support multi-tenant architectures, making it easier to scale event-sourced applications across tenants, as noted in the features.
Inherits all constraints from Azure Table Storage, such as 4MB batch size and 1MB entity limits, which can restrict event design and performance.
Relies on Azurite for testing, which doesn't fully emulate Azure Table Storage, potentially leading to gaps in test coverage as warned in the README.
As a library, it requires developers to handle infrastructure setup, scaling, and monitoring, unlike managed event store services.