Skip to main content

NimBus Features

This document is a concise catalog of the current NimBus feature set, grouped into core platform features and extensions.

Core platform features​

AreaFeatureBrief descriptionPrimary packages/services
Messaging modelEvent-driven pub/subEndpoints publish and consume typed events through Azure Service Bus topics/subscriptions.NimBus.SDK, NimBus.ServiceBus
OrderingSession-based FIFO processingMessages are grouped by SessionId to guarantee ordered handling per business key.NimBus.Core, NimBus.ServiceBus
Developer APITyped publisher/subscriber APIDI registrations for publishers, subscribers, handlers, and receiver hosting.NimBus.SDK
Event modelingSessionKey + metadata attributes[SessionKey], validation, and description attributes for ordering and schema/documentation.NimBus.Core
ReliabilityRetry policies with backoffPer-event, exception-type and exception-text retry policies with fixed/linear/exponential strategies, jitter, and Retry-After hints (IRetryAfterHint).NimBus.Core
ReliabilityEndpoint circuit breakerOpt-in failure-rate breaker pauses hosted receivers, probes at concurrency one, and restores processing without consuming delivery attempts while open.NimBus.Core, NimBus.SDK
ReliabilityPermanent failure classificationClassify unrecoverable exceptions and dead-letter immediately without retry budget use.NimBus.Core
ReliabilitySession blocking + deferralWhen a message fails, later messages in the same session are deferred to preserve order.NimBus.Core, NimBus.ServiceBus
RecoveryDeferred replayDeferred messages are re-published in FIFO order after resubmit/retry/skip unblocks the session.NimBus.ServiceBus
RecoveryResubmit/skip flowsFailed events can be resubmitted or skipped while keeping resolver history consistent.NimBus.Manager, NimBus.WebApp
Messaging patternsRequest/responseTyped request/response over Service Bus sessions with timeout handling.NimBus.SDK
Messaging patternsMessage schedulingSchedule future delivery and cancel scheduled messages (sender mode).NimBus.SDK, NimBus.ServiceBus
Messaging patternsPending handoffMarkPendingHandoff keeps the session blocked while external work runs; IHandoffClient settles the message later without re-running the handler.NimBus.SDK
Messaging patternsCloudEvents interopPer-endpoint UseCloudEvents publishing and consuming in binary or structured JSON mode, with format detection on the subscriber.NimBus.SDK, NimBus.Core
Messaging patternsCommandsCommand messages must have exactly one consumer; topology provisioning fails otherwise (ADR-014).NimBus.Abstractions, NimBus.ServiceBus
Delivery guaranteesTransactional outboxPersist outgoing messages in SQL Server outbox and dispatch asynchronously.NimBus.Outbox.SqlServer
Delivery guaranteesConsumer inboxOpt-in per-endpoint MessageId deduplication, recorded after a successful handler; a redelivered duplicate is skipped. SQL Server, Cosmos DB, or in-memory for tests.NimBus.Inbox.SqlServer, NimBus.MessageStore.CosmosDb, NimBus.SDK
Extensibility hooksPipeline middlewareMiddleware behaviors wrap handling for cross-cutting concerns.NimBus.Core
Extensibility hooksLifecycle observersPassive hooks for received/completed/failed/dead-lettered message events.NimBus.Core
Built-in middlewareLogging/Metrics/Validation middlewareBuilt-in behaviors for processing logs, OpenTelemetry metrics, and basic message validation.NimBus.Core
State and auditResolver state trackingCentral resolver stores message outcomes and endpoint resolution state in Cosmos DB or SQL Server.NimBus.Resolver, NimBus.MessageStore
State and auditPluggable storageThe Resolver and WebApp store message state in Cosmos DB or SQL Server behind one storage contract, checked by a shared conformance suite.NimBus.MessageStore.Abstractions, NimBus.MessageStore.CosmosDb, NimBus.MessageStore.SqlServer
Operations UIManagement WebAppAuthenticated UI/API for endpoint/event/message inspection and operational workflows, including reconciling stale Pending rows from their stored outcome.NimBus.WebApp
Operations UIFailed messages across endpointsOne page for every unresolved failure the operator can read: stacked failures-over-time chart, Messages-style filters, and list / by-endpoint / by-error views with resubmit and skip.NimBus.WebApp, NimBus.MessageStore
Operations UIRole-based accessReader, Contributor and Owner roles site-wide and per endpoint on the Access Control page; the separate PII Reader role reveals [Sensitive] fields, which are otherwise redacted, partly revealed or hashed.NimBus.WebApp, NimBus.Abstractions
Operations UISubscription incident responseTopology → Subscriptions lets a site Owner find a flooding backlog and stop or clear it per subscription, audited as ManageSubscription.NimBus.WebApp
Operations UISimulate trafficA site Owner can enable a Simulate page that publishes schema-valid generated events through the real bus and stands in for chosen consumers; production environments are always blocked.NimBus.WebApp
Operations automationCLI provisioning + operationsnb CLI commands for infra/topology/app deploy, purge, session cleanup, and container operations.NimBus.CommandLine
Topology managementDeclarative topology export/applyExport platform config and provision topics/subscriptions/rules from it.NimBus, NimBus.Management.ServiceBus, NimBus.CommandLine
Topology managementAsyncAPI and EventCatalog exportnb asyncapi exports, validates and diffs AsyncAPI 3.0 documents (the diff exits non-zero on breaking changes); nb catalog export writes a runnable EventCatalog site.NimBus.CommandLine, NimBus.ServiceBus
DeploymentPrivate networking (preview)--network-mode private deploys Service Bus Premium, the store and both apps behind private endpoints with public access off; not yet verified on a live Azure deployment.NimBus.CommandLine
ObservabilityHealth checksIHealthCheck probes for Service Bus and the message store, surfaced on /health, /alive and /ready.NimBus.ServiceBus, NimBus.MessageStore.CosmosDb
ObservabilityPlatform heartbeat + Resolver livenessSettings → Heartbeat probing probes every catalog endpoint with no adapter-side handler and settles a Resolver liveness probe, reporting status, round-trip and SDK version.NimBus.Core, NimBus.Resolver, NimBus.WebApp
TestingIn-memory test transportRun the full pipeline in tests without Azure Service Bus.NimBus.Testing
Local developmentAspire orchestrationLocal AppHost orchestrates provisioner, resolver, webapp, publisher, and subscriber.NimBus.AppHost, NimBus.ServiceDefaults
Local developmentLocal stack from packagesAn adapter repository's AppHost runs the Service Bus emulator, topology provisioning, Resolver and WebApp as dotnet tools, without a NimBus source checkout.Akaule.NimBus.AspireHosting, Akaule.NimBus.ServiceBusEmulator, Akaule.NimBus.Resolver.Host, Akaule.NimBus.WebApp, Akaule.NimBus.CommandLine
Local developmentService defaultsOpenTelemetry with NimBus instrumentation, health checks and service discovery; the standard HTTP resilience handler is opt-in.Akaule.NimBus.ServiceDefaults
AI agentsEvent-type registry + REST agent API/api/agent/* (catalog, event types, subscribe, receive, publish, settle) lets AI agents define event types and take part on the bus.NimBus.Agents, NimBus.WebApp
AI agentsOperator MCP endpointOpt-in /mcp endpoint for monitoring endpoints, investigating failures and recovering single failed messages under WebApp roles and audit.NimBus.WebApp

Extension framework​

FeatureBrief descriptionPrimary packages
INimBusExtension modelExtension packages can register services, middleware, and lifecycle observers through AddNimBus().NimBus.Core.Extensions
Fluent builder compositionINimBusBuilder supports adding behaviors, observers, and extension instances/types.NimBus.Core.Extensions
Backward-compatible opt-inWithout registered extensions, NimBus runs with default core behavior.NimBus.Core

Shipped extensions​

ExtensionBrief descriptionPackage/project
NotificationsSends configurable notifications on lifecycle events (failure/dead-letter by default) through Webhook, Microsoft Teams and Email channels or a custom INotificationChannel, with per-channel severity filters and rate limiting.NimBus.Extensions.Notifications
IdentityAdds ASP.NET Core Identity username/password auth for WebApp, with email confirmation/reset flow and optional dual-login with Entra ID.NimBus.Extensions.Identity
Entra bearer tokens for HTTP clientsAddAzureBearerToken(...) adds a cached Microsoft Entra token to an IHttpClientFactory client, for adapters calling Dataverse, Business Central or Finance and Operations.Akaule.NimBus.Extensions.Http
Integration IntelligenceOn-demand, idempotent, audited classification of a persisted failed or dead-lettered occurrence with bounded redacted evidence and deterministic operator guidance.Akaule.NimBus.Extensions.IntegrationIntelligence, NimBus.WebApp