I-Synergy.Framework.EventSourcing.Storage.S3
2026.10825.12205
Prefix Reserved
dotnet add package I-Synergy.Framework.EventSourcing.Storage.S3 --version 2026.10825.12205
NuGet\Install-Package I-Synergy.Framework.EventSourcing.Storage.S3 -Version 2026.10825.12205
<PackageReference Include="I-Synergy.Framework.EventSourcing.Storage.S3" Version="2026.10825.12205" />
<PackageVersion Include="I-Synergy.Framework.EventSourcing.Storage.S3" Version="2026.10825.12205" />
<PackageReference Include="I-Synergy.Framework.EventSourcing.Storage.S3" />
paket add I-Synergy.Framework.EventSourcing.Storage.S3 --version 2026.10825.12205
#r "nuget: I-Synergy.Framework.EventSourcing.Storage.S3, 2026.10825.12205"
#:package I-Synergy.Framework.EventSourcing.Storage.S3@2026.10825.12205
#addin nuget:?package=I-Synergy.Framework.EventSourcing.Storage.S3&version=2026.10825.12205
#tool nuget:?package=I-Synergy.Framework.EventSourcing.Storage.S3&version=2026.10825.12205
I-Synergy Framework EventSourcing Storage S3
AWS S3 (and S3-compatible) implementation of IEventArchiveStorage for I-Synergy Event Sourcing.
Included types
S3EventArchiveStorage— stores archived events as JSON objects in per-tenant S3 buckets
Usage
Register an AmazonS3Client in DI first, then call AddS3EventArchiveStorage:
// Register the shared AmazonS3Client (configure credentials and region once)
var credentials = new BasicAWSCredentials(accessKey, secretKey);
var config = new AmazonS3Config { RegionEndpoint = RegionEndpoint.EUWest1 };
services.AddSingleton(new AmazonS3Client(credentials, config));
// Register IEventArchiveStorage backed by S3
services.AddS3EventArchiveStorage("archive");
// Register the archiver and reader (from ISynergy.Framework.EventSourcing.Storage)
services.AddEventArchiving(configuration);
For MinIO or other S3-compatible providers, set ServiceUrl and ForcePathStyle = true on AmazonS3Config.
Tenant isolation
Each tenant receives its own bucket: {bucketNamePrefix}-{tenantId} (e.g. archive-a1b2c3d4-...).
Buckets are created on demand. Within each bucket the object key is:
{streamType}/{streamId}/{versionFrom}-{versionTo}.json
Bucket naming constraints
The prefix must be lowercase, contain only letters, digits and hyphens, and be at most
26 characters so that {prefix}-{36-char-guid} fits within the S3 63-character limit.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- AWSSDK.S3 (>= 4.0.102.4)
- I-Synergy.Framework.EventSourcing.Storage (>= 2026.10825.12205)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.11)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
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 |
|---|---|---|
| 2026.10825.12205 | 69 | 8/25/2026 |
| 2026.10825.11512-preview | 67 | 8/25/2026 |
| 2026.10822.10000 | 81 | 8/21/2026 |
| 2026.10818.11310 | 86 | 8/18/2026 |
| 2026.10817.11530 | 90 | 8/17/2026 |
| 2026.10817.11419-preview | 80 | 8/17/2026 |
| 2026.10815.12144 | 92 | 8/15/2026 |
| 2026.10815.12012-preview | 90 | 8/15/2026 |
| 2026.10815.11909-preview | 82 | 8/15/2026 |
| 2026.10814.10255-preview | 82 | 8/14/2026 |
| 2026.10813.11601 | 82 | 8/13/2026 |
| 2026.10813.11334-preview | 83 | 8/13/2026 |
| 2026.10812.11511-preview | 79 | 8/12/2026 |
| 2026.10811.12221-preview | 84 | 8/11/2026 |
| 2026.10811.11857-preview | 81 | 8/11/2026 |
| 2026.10810.10125 | 88 | 8/10/2026 |
| 2026.10809.12301-preview | 75 | 8/9/2026 |
| 2026.10809.12039-preview | 86 | 8/9/2026 |
| 2026.10803.11705-preview | 84 | 8/3/2026 |
| 2026.10731.11405 | 96 | 7/31/2026 |