See an account travel from CRM to ERP.
Run two business systems, their adapters, the Resolver, and the management WebApp together. The sample defaults to the NimBus Service Bus emulator and SQL Server; no Azure account is required.
1. Prepare your machine
- .NET 10 SDK and Git.
- Node.js 22+ for the CRM, ERP, and management frontends.
- A running Docker-compatible container runtime for SQL Server and local storage resources.
Use the default emulator and SQL configuration below. If you
previously set NIMBUS_SB_EMULATOR or
NIMBUS_STORAGE_PROVIDER, clear those overrides first.
2. Clone and run
From a terminal, install the sample’s frontend dependencies and launch its Aspire AppHost:
git clone https://github.com/akakaule/NimBus.git
cd NimBus
npm --prefix samples/CrmErpDemo/Crm.Web install
npm --prefix samples/CrmErpDemo/Erp.Web install
dotnet run --project samples/CrmErpDemo/CrmErpDemo.AppHost
The first build downloads dependencies and container images. Open
the Aspire dashboard URL printed in the terminal. Wait for
provisioner to finish and the application resources to
become healthy.
The emulator supports the sample’s messaging surface for local development. It is not a production broker or a substitute for testing against Azure Service Bus.
3. Follow the account
-
Open
crm-webfrom the dashboard and create an account. -
Open
erp-weband find the corresponding customer. - Refresh CRM and look for the ERP customer identifier.
-
Open
nimbus-opsto inspect the related events and processing history.
The sample guide explains the adapters, topology, storage options, and recovery scenarios.
4. Explore recovery
Use the sample guide’s failure scenario to make a downstream
operation fail. Inspect the failed event in nimbus-ops,
restore the dependency, and resubmit. Observe the blocked session
resume and its deferred messages replay.
Watch the recorded recovery walkthrough or try the browser simulation without running the sample.
Build your own integration
dotnet add package Akaule.NimBus.SDK
Follow Building Adapters to define events, register handlers, and configure receiver hosting for a .NET Worker or Azure Function.
To use a real namespace with the sample, set
NIMBUS_SB_EMULATOR=false and configure its
ConnectionStrings:servicebus user secret. Cosmos DB is
optional; the sample guide covers selecting it explicitly.
Ready to deploy? The deployment guide covers Azure prerequisites, permissions, the CLI, and CI/CD pipelines.