Excalibur.Data.IdentityMap
3.0.0-alpha.216
dotnet add package Excalibur.Data.IdentityMap --version 3.0.0-alpha.216
NuGet\Install-Package Excalibur.Data.IdentityMap -Version 3.0.0-alpha.216
<PackageReference Include="Excalibur.Data.IdentityMap" Version="3.0.0-alpha.216" />
<PackageVersion Include="Excalibur.Data.IdentityMap" Version="3.0.0-alpha.216" />
<PackageReference Include="Excalibur.Data.IdentityMap" />
paket add Excalibur.Data.IdentityMap --version 3.0.0-alpha.216
#r "nuget: Excalibur.Data.IdentityMap, 3.0.0-alpha.216"
#:package Excalibur.Data.IdentityMap@3.0.0-alpha.216
#addin nuget:?package=Excalibur.Data.IdentityMap&version=3.0.0-alpha.216&prerelease
#tool nuget:?package=Excalibur.Data.IdentityMap&version=3.0.0-alpha.216&prerelease
Excalibur.Data.IdentityMap
Aggregate identity map abstractions for Excalibur, providing external-to-internal ID resolution for CDC ingestion and anti-corruption layers.
Overview
The identity map store provides a write-side authoritative mapping between external system identifiers (e.g., legacy transaction IDs, ERP account numbers) and internal aggregate IDs. This enables:
- Idempotent CDC ingestion -- detect whether an external record has already been imported
- Cross-aggregate reference resolution -- resolve related entities (Account, Client, Branch) by their external keys
- Anti-corruption layer -- decouple domain model IDs from external system IDs
Usage
// Register with SQL Server provider
services.AddIdentityMap(identity =>
{
identity.UseSqlServer(sql =>
{
sql.ConnectionString(connectionString)
.SchemaName("dbo")
.TableName("IdentityMap");
});
});
// Resolve an external ID to an aggregate ID
Guid? orderId = await identityMap.ResolveAsync<Guid>(
"LegacyCore", legacyOrderId, "Order", cancellationToken);
// Bind a new mapping (idempotent)
var result = await identityMap.TryBindAsync(
"LegacyCore", legacyOrderId, "Order",
newOrderId.ToString(), cancellationToken);
if (result.WasCreated)
{
// New aggregate -- proceed with creation
}
else
{
// Existing aggregate -- route to update/reconcile
}
Packages
| Package | Purpose |
|---|---|
Excalibur.Data.IdentityMap |
Core abstractions, builder, InMemory implementation |
Excalibur.Data.IdentityMap.SqlServer |
SQL Server provider using Dapper |
| 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
- Ben.Demystifier (>= 0.4.1)
- BenchmarkDotNet (>= 0.15.8)
- CloudNative.CloudEvents (>= 2.8.0)
- CloudNative.CloudEvents.SystemTextJson (>= 2.8.0)
- Cronos (>= 0.12.0)
- Dapper (>= 2.1.72)
- Excalibur.Dispatch.Abstractions (>= 3.0.0-alpha.216)
- Excalibur.Hosting (>= 3.0.0-alpha.216)
- FluentValidation (>= 12.1.1)
- FluentValidation.DependencyInjectionExtensions (>= 12.1.1)
- IdentityModel (>= 7.0.0)
- JsonNet.ContractResolvers (>= 2.0.0)
- Medo.Uuid7 (>= 3.2.0)
- MemoryPack (>= 1.21.4)
- Microsoft.ApplicationInsights (>= 3.1.0)
- Microsoft.AspNetCore.Authorization (>= 10.0.7)
- Microsoft.CodeAnalysis.Analyzers (>= 5.3.0)
- Microsoft.CodeAnalysis.Common (>= 5.3.0)
- Microsoft.CodeAnalysis.CSharp (>= 5.3.0)
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Caching.Memory (>= 10.0.7)
- Microsoft.Extensions.Configuration (>= 10.0.7)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.7)
- Microsoft.Extensions.Configuration.CommandLine (>= 10.0.7)
- Microsoft.Extensions.Configuration.EnvironmentVariables (>= 10.0.7)
- Microsoft.Extensions.Configuration.Json (>= 10.0.7)
- Microsoft.Extensions.DependencyInjection (>= 10.0.7)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Diagnostics.HealthChecks (>= 10.0.7)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Hosting (>= 10.0.7)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Http (>= 10.0.7)
- Microsoft.Extensions.Logging (>= 10.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
- Microsoft.Extensions.Logging.Console (>= 10.0.7)
- Microsoft.Extensions.ObjectPool (>= 10.0.7)
- Microsoft.Extensions.Options (>= 10.0.7)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.7)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.7)
- Microsoft.IdentityModel.Tokens (>= 8.17.0)
- OpenTelemetry (>= 1.15.3)
- OpenTelemetry.Api (>= 1.15.3)
- OpenTelemetry.Extensions.Hosting (>= 1.15.3)
- Polly (>= 8.6.6)
- System.IdentityModel.Tokens.Jwt (>= 8.17.0)
- System.Threading.RateLimiting (>= 10.0.7)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Excalibur.Data.IdentityMap:
| Package | Downloads |
|---|---|
|
Excalibur.Data.IdentityMap.SqlServer
SQL Server identity map store implementation for Excalibur, providing durable external-to-internal aggregate ID resolution. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0-alpha.216 | 44 | 6/30/2026 |
| 3.0.0-alpha.215 | 59 | 6/23/2026 |
| 3.0.0-alpha.214 | 57 | 6/23/2026 |
| 3.0.0-alpha.208 | 59 | 6/11/2026 |
| 3.0.0-alpha.207 | 55 | 6/11/2026 |
| 3.0.0-alpha.205 | 57 | 6/10/2026 |
| 3.0.0-alpha.204 | 61 | 6/8/2026 |
| 3.0.0-alpha.203 | 62 | 6/8/2026 |
| 3.0.0-alpha.202 | 56 | 6/8/2026 |
| 3.0.0-alpha.201 | 57 | 6/8/2026 |
| 3.0.0-alpha.199 | 55 | 6/8/2026 |
| 3.0.0-alpha.198 | 58 | 5/28/2026 |
| 3.0.0-alpha.197 | 76 | 5/28/2026 |
| 3.0.0-alpha.194 | 57 | 5/20/2026 |
| 3.0.0-alpha.193 | 57 | 5/13/2026 |
| 3.0.0-alpha.192 | 61 | 5/13/2026 |
| 3.0.0-alpha.191 | 59 | 5/13/2026 |
| 3.0.0-alpha.189 | 67 | 5/12/2026 |
| 3.0.0-alpha.187 | 58 | 5/8/2026 |
| 3.0.0-alpha.185 | 59 | 5/7/2026 |