Architect.Identities 1.0.0-RC12

Reliable unique ID generation for distributed applications.

This package provides highly tuned tools for ID generation and management.

Auto-increment IDs reveal sensitive information. UUIDs (also known as GUIDs) are inefficient as primary keys in a database. Having two different IDs is cumbersome and counterintuitive. We can do better.

- For a 93-bit UUID replacement that is efficient as a primary key and has virtually no caveats, use the DistributedId.
- For a 64-bit UUID replacement that is extremely efficient as a primary key, use the Fluid.
- To expose IDs externally in a sensitive environment where zero metadata must be leaked, transform them with PublicIdentities.
- To assign a unique ID to each distinct application or instance thereof, use an ApplicationInstanceIdSource.

This is a prerelease version of Architect.Identities.
There is a newer prerelease version of this package available.
See the version list below for details.
The owner has unlisted this package. This could mean that the package is deprecated or shouldn't be used anymore.
Install-Package Architect.Identities -Version 1.0.0-RC12
dotnet add package Architect.Identities --version 1.0.0-RC12
<PackageReference Include="Architect.Identities" Version="1.0.0-RC12" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Architect.Identities --version 1.0.0-RC12
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Architect.Identities:

Package Downloads
Azure-based implementations for the Architect.Identities package. This package allows Azure blob storage to be used as the synchronization mechanism for assigning unique IDs to each application instance. services.AddIdGenerator(generator => generator.UseAzureBlobStorageContainer(new BlobContainerClient("ConnectionString", "ContainerName")));
EntityFramework extensions for the Architect.Identities package. Use DbContext-based connections for the Fluid ID generator: public void ConfigureServices(IServiceCollection services) { services.AddPooledDbContextFactory<ExampleDbContext>(context => context.UseSqlServer("ConnectionString")); services.AddApplicationInstanceIdSource(source => source.UseSqlServerDbContext<ExampleDbContext>()); services.AddIdGenerator(generator => generator.UseFluid()); } Easily configure the column type to use for decimal ID columns: protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Order>(entity => { entity.Property(o => o.Id) .ValueGeneratedNever(); entity.HasKey(o => o.Id); }); // Other entities ... // For all mapped decimal columns named *Id or *ID modelBuilder.StoreDecimalIdsWithCorrectPrecision(dbContext: this); } Or per individual property: protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Order>(entity => { entity.Property(e => e.Id) .ValueGeneratedNever() .StoreWithDecimalIdPrecision(dbContext: this); }); } The extensions in this package special-case SQLite, which requires special treatment.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.0.0-RC13 57 9/23/2020