Streamon.Azure.TableStorage 0.1.1

dotnet add package Streamon.Azure.TableStorage --version 0.1.1                
NuGet\Install-Package Streamon.Azure.TableStorage -Version 0.1.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="Streamon.Azure.TableStorage" Version="0.1.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Streamon.Azure.TableStorage --version 0.1.1                
#r "nuget: Streamon.Azure.TableStorage, 0.1.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 Streamon.Azure.TableStorage as a Cake Addin
#addin nuget:?package=Streamon.Azure.TableStorage&version=0.1.1

// Install Streamon.Azure.TableStorage as a Cake Tool
#tool nuget:?package=Streamon.Azure.TableStorage&version=0.1.1                

NuGet Version GitHub License .github/workflows/ci.yml .github/workflows/cd.yml

Streamon

Event streaming store platform for real-time data processing and analytics.

Providers

Features

  • POCO events, no base classes or inheritance required
  • Event ids and Metadata detection by using both Attribute and Interface markers
  • Customizable serialization and type resolution
  • Flexible stream sorage naming and partitioning, e.g. allowing for multitenancy by using one stream per tenant
  • Optimistic concurrency control
  • Soft and hard deletion modes
  • Global event positioning & tracking
  • Subscriptions
  • Snapshots and Checkpoints

To Do's

  • Telemetry
  • Relational Stores (Entity Framework?)
  • Claim Checks for large events
  • Stream Projections
  • Stream Sweeper (Archiving and Purging)

Azure Table Storage Provider Details

The Azure Table Storage provider is a simple implementation of the IStreamStore interface. It uses Azure Table Storage to store events in a single table. The table is partitioned by the stream id and the row key is the event id. The provider uses the Ulid library to generate unique identifiers for events.

Table Storage only support batches of up to 100 entities, trying to write more than that will result in an exception. The responsibility of handling this is left to the caller, as the provider does not implement any batching logic due to the fact that it can't guarantee the consistency of persistence across different batches.

Thanks

For inspiration and ideas, thanks to:

Streamstone Eveneum Eventflow and Eventuous

Icon:

Pipe icons created by srip - Flaticon

Dependencies

Continuous Integration & Deployment

The project is built and tested using GitHub Actions. The build artifacts are published to GitHub Packages.

Github actions are configured to publish the packages to GitHub Packages on every push to the main branch.

Local testing and development of Github actions can be done using the act tool.

License

MIT License

Product Compatible and additional computed target framework versions.
.NET 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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.1.1 74 12/3/2024
0.0.1 84 11/29/2024