AsiBackbone.Storage.InMemory
7.0.0
dotnet add package AsiBackbone.Storage.InMemory --version 7.0.0
NuGet\Install-Package AsiBackbone.Storage.InMemory -Version 7.0.0
<PackageReference Include="AsiBackbone.Storage.InMemory" Version="7.0.0" />
<PackageVersion Include="AsiBackbone.Storage.InMemory" Version="7.0.0" />
<PackageReference Include="AsiBackbone.Storage.InMemory" />
paket add AsiBackbone.Storage.InMemory --version 7.0.0
#r "nuget: AsiBackbone.Storage.InMemory, 7.0.0"
#:package AsiBackbone.Storage.InMemory@7.0.0
#addin nuget:?package=AsiBackbone.Storage.InMemory&version=7.0.0
#tool nuget:?package=AsiBackbone.Storage.InMemory&version=7.0.0
AsiBackbone.Storage.InMemory
Non-durable in-memory storage helpers for AsiBackbone local validation, samples, and tests.
This package provides non-durable storage implementations that make it easy to exercise ASI Backbone governance flows without requiring a database, EF Core provider, or host infrastructure.
New to AsiBackbone? Start with the concept, not this package: Intent to Execution: An Accountability Pattern and the documentation site. This README covers one package in the family.
Important: This package is not durable storage. Do not use it as a production audit ledger, compliance archive, tamper-evident store, replay-protection store, or long-term accountability store.
What this package provides
- In-memory audit ledger behavior for local validation and tests.
- In-memory outbox behavior for local validation, samples, and integration tests.
- In-memory capability grant use tracking for local validation, samples, and integration tests.
- Storage implementations that depend on
AsiBackbone.Coreonly. - A simple bridge for samples that need audit, outbox, or bounded-use capability grant records without introducing EF Core or a database.
Intended usage
Use this package when:
- writing unit tests or integration tests around policy evaluation;
- building sample applications;
- validating decision receipt and audit ledger behavior locally;
- validating outbox state transitions locally;
- validating first-use and replay-denied capability grant flows locally;
- demonstrating host-neutral ASI Backbone flows before adding durable storage.
For production persistence, use a host-owned durable storage strategy such as AsiBackbone.EntityFrameworkCore or a custom implementation of the Core storage contracts.
In-memory capability grant use semantics
InMemoryCapabilityGrantUseStore implements ICapabilityGrantUseStore for tests, samples, and local validation. It is keyed by issuer and capability grant token ID, consumes one use when accepted, honors maxUseCount, and returns capability.use-limit-exceeded when the local in-process count reaches that limit.
Use records are evicted once a grant has been expired for longer than EvictionGracePeriod (default five minutes), measured from the latest observed use time. A grant past that retention horizon is refused with capability.use-retention-elapsed rather than given a fresh count. Set EvictionGracePeriod to at least the largest AllowedClockSkew used with the store; otherwise expired grants still inside the skew are denied.
The store is thread-safe inside one process, and exposes local-validation helpers to mark grants as stopped or cancelled, either for one issuer (StopGrant(issuer, grantId), CancelGrant(issuer, grantId)) or for every issuer using an identifier (StopGrant(grantId), CancelGrant(grantId)). It does not persist across process restarts, coordinate multiple replicas, provide distributed locks, or guarantee production replay protection.
In-memory outbox concurrency semantics
InMemoryGovernanceOutboxStore is single-process and non-durable. It does not claim work across replicas, coordinate distributed workers, or provide exactly-once provider delivery.
Within that single process, same-entry outbox status transitions use compare-and-swap updates so local tests do not accidentally observe last-write-wins behavior. Delivered and dead-lettered entries are treated as terminal for subsequent in-memory state updates, and retryable failure updates against the same entry advance from the latest observed entry state.
Boundary
The in-memory package should remain lightweight and host-neutral. It should not select a database provider, own migrations, expose ASP.NET Core middleware, or imply durable compliance-grade audit storage or production replay protection.
| 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
- AsiBackbone.Core (>= 7.0.0)
- AsiBackbone.DependencyInjection (>= 7.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on AsiBackbone.Storage.InMemory:
| Package | Downloads |
|---|---|
|
AsiBackbone.Testing
Test harness helpers for Accountable Systems Infrastructure endpoint governance, deterministic policy decisions, and in-memory inspection. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 7.0.0 | 92 | 9/26/2026 | |
| 6.0.0 | 124 | 9/19/2026 | |
| 5.2.0 | 116 | 9/14/2026 | |
| 5.1.0 | 1,393 | 9/12/2026 | |
| 5.0.0 | 178 | 9/7/2026 | |
| 4.0.0 | 147 | 9/6/2026 | |
| 3.2.3 | 202 | 8/30/2026 | |
| 3.2.2 | 183 | 8/22/2026 | |
| 3.2.1 | 172 | 8/7/2026 | |
| 3.2.0 | 175 | 8/2/2026 | |
| 3.1.0 | 183 | 7/20/2026 | |
| 3.0.1 | 247 | 7/14/2026 | |
| 3.0.0 | 211 | 7/13/2026 | |
| 2.3.0 | 513 | 7/6/2026 | |
| 2.2.1 | 223 | 7/3/2026 | |
| 2.2.0 | 197 | 7/1/2026 | |
| 2.1.1 | 202 | 6/29/2026 | |
| 2.1.0 | 190 | 6/28/2026 | |
| 2.0.2 | 240 | 6/26/2026 | |
| 2.0.1 | 176 | 6/26/2026 |