Skip to content

Backend hosting overview

You want one command/query model without accidentally choosing an event store or the wrong web host. Arc separates those decisions: Arc.Core provides the application model, and Cratis.Arc adds ASP.NET Core integration. Neither requires Chronicle.

HostPackage and bootstrapUse it when…
ASP.NET CoreCratis.Arc, WebApplication.CreateBuilder(args), builder.AddCratisArc(), app.UseCratisArc()You want ASP.NET Core routing, middleware, controllers alongside model-bound endpoints, and its authentication ecosystem
Lightweight hostCratis.Arc.Core, ArcApplication.CreateBuilder(args)You intentionally want Arc’s generic-host / HttpListener-based endpoint surface without ASP.NET Core

The standalone getting-started path uses ASP.NET Core throughout. The Arc.Core getting-started guide explains the alternative. Do not copy one host’s extension-method sequence into the other.

depends on

uses

chooses

or chooses

Cratis.Arc ASP.NET Core integration

Arc.Core application model

ArcApplication lightweight host

Application

Arc.Core is useful when you do not need ASP.NET Core, but that is not a guarantee of compatibility with every device, desktop, browser, AOT, or restricted runtime. Validate the selected host and dependencies on your deployment target.

Commands may call application services, write MongoDB collections, or use EF Core contexts. Add Chronicle explicitly when the slice needs event persistence, projections, or reactors. Returning an event-shaped object from standalone Core is ordinary response handling, not an automatic append.

Proxy generation is a separate post-build tool. Install its build package and configure an output path; it inspects compiled assemblies and PDB source information rather than querying your running endpoints. Generate in Debug before type-checking the frontend.