Skip to main content

Package Matrix

All shipping packages organized by category. Use Pick Your Stack to find the right combination for your scenario.

Metapackages

One-line setup for common scenarios. Each bundles multiple feature packages.

Complete Provider Metapackages

PackageWhat It BundlesDI Entry Point
Excalibur.SqlServerEvent sourcing, outbox, inbox, sagas, leader election, audit, compliance, data access (all SQL Server)AddExcaliburSqlServer()
Excalibur.PostgresSame as above, all PostgreSQLAddExcaliburPostgres()

Experience Starter Metapackages

PackageWhat It BundlesDI Entry Point
Excalibur.Dispatch.SqlServerCore dispatch + SQL Server event sourcing + outbox + hostingAddExcaliburEventSourcing()
Excalibur.Dispatch.PostgresCore dispatch + Postgres event sourcing + outbox + hostingAddExcaliburEventSourcing()
Excalibur.Dispatch.RabbitMQRabbitMQ transport + resilience + observabilityAddDispatchRabbitMQ()
Excalibur.Dispatch.KafkaKafka transport + serializationAddDispatchKafka()
Excalibur.Dispatch.AzureAzure Service Bus + Azure Key VaultAddDispatchAzure()
Excalibur.Dispatch.AwsAWS SQS + AWS Secrets ManagerAddDispatchAws()

Core Dispatch

PackagePurpose
Excalibur.DispatchCore dispatcher, pipeline, middleware, routing, serialization
Excalibur.Dispatch.AbstractionsInterfaces: IDomainEvent, IIntegrationEvent, IDispatcher, IMessageContext

Middleware & Pipeline

PackagePurpose
Excalibur.Dispatch.CachingResponse caching with tag-based invalidation
Excalibur.Dispatch.ObservabilityOpenTelemetry metrics, tracing, PII-safe telemetry
Excalibur.Dispatch.Observability.AwsAWS CloudWatch integration
Excalibur.Dispatch.Resilience.PollyPolly retry, circuit breaker, timeout, bulkhead
Excalibur.Dispatch.Validation.FluentValidationFluentValidation integration
Excalibur.Dispatch.PatternsOutbox, inbox, dead letter, claim check patterns
Excalibur.Dispatch.Patterns.AzureAzure-specific pattern implementations
Excalibur.Dispatch.Patterns.ClaimCheck.InMemoryIn-memory claim check store
Excalibur.Dispatch.Patterns.Hosting.JsonJSON hosting for pattern configuration

Security & Compliance

PackagePurpose
Excalibur.Dispatch.SecurityEncryption, signing, rate limiting, authentication
Excalibur.Dispatch.Security.AwsAWS KMS key management
Excalibur.Dispatch.Security.AzureAzure Key Vault key management
Excalibur.Dispatch.ComplianceGDPR erasure, compliance monitoring
Excalibur.Dispatch.Compliance.AbstractionsCompliance interfaces
Excalibur.Dispatch.Compliance.AwsAWS compliance integration
Excalibur.Dispatch.Compliance.AzureAzure compliance integration
Excalibur.Dispatch.Compliance.VaultHashiCorp Vault compliance integration
Excalibur.Compliance.SqlServerSQL Server compliance store
Excalibur.Compliance.PostgresPostgreSQL compliance store

Audit Logging

PackagePurpose
Excalibur.Dispatch.AuditLoggingCore audit logging framework
Excalibur.Dispatch.AuditLogging.SqlServerSQL Server audit store
Excalibur.Dispatch.AuditLogging.PostgresPostgreSQL audit store
Excalibur.Dispatch.AuditLogging.ElasticsearchElasticsearch audit store
Excalibur.Dispatch.AuditLogging.SplunkSplunk SIEM exporter
Excalibur.Dispatch.AuditLogging.SentinelMicrosoft Sentinel SIEM exporter
Excalibur.Dispatch.AuditLogging.DatadogDatadog SIEM exporter
Excalibur.Dispatch.AuditLogging.AwsAWS CloudWatch audit exporter
Excalibur.Dispatch.AuditLogging.GoogleCloudGoogle Cloud audit exporter

Transports

PackagePurpose
Excalibur.Dispatch.Transport.AbstractionsTransport interfaces
Excalibur.Dispatch.Transport.RabbitMQRabbitMQ transport
Excalibur.Dispatch.Transport.KafkaApache Kafka transport
Excalibur.Dispatch.Transport.AzureServiceBusAzure Service Bus transport
Excalibur.Dispatch.Transport.AwsSqsAWS SQS transport
Excalibur.Dispatch.Transport.GooglePubSubGoogle Cloud Pub/Sub transport
Excalibur.Dispatch.Transport.GrpcgRPC transport

Serialization

PackagePurpose
Excalibur.Dispatch.Serialization.MemoryPackMemoryPack binary serialization (default)
Excalibur.Dispatch.Serialization.MessagePackMessagePack binary serialization
Excalibur.Dispatch.Serialization.ProtobufProtocol Buffers serialization
Excalibur.Dispatch.Serialization.AvroApache Avro serialization

Hosting

PackagePurpose
Excalibur.Dispatch.Hosting.AspNetCoreASP.NET Core integration, minimal API bridge
Excalibur.Dispatch.Hosting.AzureFunctionsAzure Functions hosting
Excalibur.Dispatch.Hosting.AwsLambdaAWS Lambda hosting
Excalibur.Dispatch.Hosting.GoogleCloudFunctionsGoogle Cloud Functions hosting
Excalibur.Dispatch.Hosting.Serverless.AbstractionsServerless hosting abstractions
Excalibur.Dispatch.LeaderElection.AbstractionsLeader election interfaces
Excalibur.Dispatch.ClaimCheck.AwsS3AWS S3 claim check storage
Excalibur.Dispatch.ClaimCheck.GoogleCloudStorageGoogle Cloud Storage claim check

Source Generators & Analyzers

PackagePurpose
Excalibur.Dispatch.SourceGeneratorsCompile-time handler discovery, AOT support
Excalibur.Dispatch.SourceGenerators.AnalyzersBuild-time code analysis
Excalibur.Dispatch.AnalyzersAdditional Roslyn analyzers

Testing

PackagePurpose
Excalibur.Dispatch.TestingDispatchTestHarness, MessageContextBuilder
Excalibur.Dispatch.Testing.ShouldlyShouldly assertion extensions
Excalibur.TestingBase testing utilities
Excalibur.Testing.ConformanceConformance test kits for providers

Excalibur Domain & Data

PackagePurpose
Excalibur.DomainAggregateRoot, entities, domain building blocks
Excalibur.ApplicationApplication layer abstractions
Excalibur.Data.AbstractionsIDataRequest, IDb, IUnitOfWork
Excalibur.DataCore data access
Excalibur.Data.SqlServerSQL Server data access (Dapper)
Excalibur.Data.PostgresPostgreSQL data access
Excalibur.Data.CosmosDbAzure Cosmos DB data access
Excalibur.Data.DynamoDbAWS DynamoDB data access
Excalibur.Data.MongoDBMongoDB data access
Excalibur.Data.ElasticSearchElasticsearch data access
Excalibur.Data.RedisRedis data access
Excalibur.Data.FirestoreGoogle Firestore data access
Excalibur.Data.InMemoryIn-memory data store (testing)
Excalibur.Data.MySqlMySQL data access
Excalibur.Data.DataProcessingBackground data processing

Event Sourcing

PackagePurpose
Excalibur.EventSourcing.AbstractionsIEventStore, ISnapshot interfaces
Excalibur.EventSourcing.SqlServerSQL Server event store
Excalibur.EventSourcing.PostgresPostgreSQL event store
Excalibur.EventSourcing.CosmosDbCosmos DB event store
Excalibur.EventSourcing.DynamoDbDynamoDB event store
Excalibur.EventSourcing.MongoDBMongoDB event store
Excalibur.EventSourcing.FirestoreFirestore event store
Excalibur.EventSourcing.RedisRedis event store
Excalibur.EventSourcing.InMemoryIn-memory event store (testing)

Outbox

PackagePurpose
Excalibur.OutboxOutbox pattern core
Excalibur.Outbox.SqlServerSQL Server outbox store
Excalibur.Outbox.PostgresPostgreSQL outbox store
Excalibur.Outbox.CosmosDbCosmos DB outbox store
Excalibur.Outbox.DynamoDbDynamoDB outbox store
Excalibur.Outbox.MongoDBMongoDB outbox store
Excalibur.Outbox.ElasticSearchElasticsearch outbox store
Excalibur.Outbox.FirestoreFirestore outbox store
Excalibur.Outbox.RedisRedis outbox store
Excalibur.Outbox.InMemoryIn-memory outbox store (testing)
Excalibur.InboxInbox pattern (idempotent consumer)

Sagas

PackagePurpose
Excalibur.SagaSaga/process manager abstractions
Excalibur.Saga.SqlServerSQL Server saga store
Excalibur.Saga.PostgresPostgreSQL saga store
Excalibur.Saga.CosmosDbCosmos DB saga store
Excalibur.Saga.DynamoDbDynamoDB saga store
Excalibur.Saga.MongoDBMongoDB saga store
Excalibur.Saga.FirestoreFirestore saga store

Leader Election

PackagePurpose
Excalibur.LeaderElectionLeader election abstractions
Excalibur.LeaderElection.SqlServerSQL Server leader election
Excalibur.LeaderElection.PostgresPostgreSQL leader election
Excalibur.LeaderElection.RedisRedis leader election
Excalibur.LeaderElection.MongoDBMongoDB leader election
Excalibur.LeaderElection.ConsulConsul leader election
Excalibur.LeaderElection.KubernetesKubernetes leader election
Excalibur.LeaderElection.InMemoryIn-memory leader election (testing)

Change Data Capture (CDC)

PackagePurpose
Excalibur.CdcCDC core abstractions
Excalibur.Cdc.SqlServerSQL Server CDC
Excalibur.Cdc.PostgresPostgreSQL CDC
Excalibur.Cdc.CosmosDbCosmos DB change feed
Excalibur.Cdc.DynamoDbDynamoDB Streams
Excalibur.Cdc.MongoDBMongoDB change streams
Excalibur.Cdc.FirestoreFirestore listeners

Jobs & Scheduling

PackagePurpose
Excalibur.JobsJob scheduling core
Excalibur.Jobs.AbstractionsJob interfaces
Excalibur.Jobs.SqlServerSQL Server job store
Excalibur.Jobs.RedisRedis job store
Excalibur.Jobs.CdcCDC-triggered jobs
Excalibur.Jobs.DataProcessingData processing jobs
Excalibur.Jobs.AwsAWS job infrastructure
Excalibur.Jobs.AzureAzure job infrastructure
Excalibur.Jobs.GoogleCloudGoogle Cloud job infrastructure

Authorization (A3)

PackagePurpose
Excalibur.A3Full A3 authorization (with database stores)
Excalibur.A3.CoreCore A3 authorization (in-memory, no DB)
Excalibur.A3.AbstractionsA3 interfaces
Excalibur.A3.GovernanceAccess governance, reviews, separation of duties
Excalibur.A3.Governance.AbstractionsGovernance interfaces
Excalibur.A3.Policy.OpaOpen Policy Agent (OPA) HTTP adapter
Excalibur.A3.Policy.CedarCedar policy engine HTTP adapter

Security & Caching (Excalibur)

PackagePurpose
Excalibur.SecuritySecurity infrastructure
Excalibur.Security.AbstractionsSecurity interfaces
Excalibur.CachingExcalibur caching layer

Tools

PackagePurpose
Excalibur.Migrate.ToolDatabase migration CLI tool

Provider Coverage Matrix

Which providers support which features:

FeatureSQL ServerPostgresCosmosDBDynamoDBMongoDBFirestoreRedisIn-Memory
Event Store
Outbox
Sagas
Leader Election
CDC
Data Access
Audit Logging
Compliance
Complete Metapackage

Next Steps