---
title: Backend
---

The backend is where you express *what your application does* — the commands that change state and the
queries that read it. Arc's job is to make that expression the only thing you write: you define a
command or query as a plain record, and Arc handles the HTTP endpoint, validation, authorization, and a
typed TypeScript proxy for the frontend. CQRS without the ceremony. In the full Cratis loop those commands append events through Chronicle; in bounded current-state slices they can write MongoDB or EF Core directly.

```mermaid
flowchart LR
    REC["Command / query record"] -->|Arc discovers| EP[HTTP endpoint]
    EP -->|proxy generator| TS[Typed TS proxy]
    REC -->|commands write| DB[(MongoDB / EF Core)]
    REC -->|queries read| RM[(Read models)]
    DB --> RM
```

## Start here

New to the backend? Walk through [Getting started](/arc/backend/getting-started/) to build your first
command and query end to end. Then the two pillars:

- [Commands](/arc/backend/commands/) — intents that change state through `Handle()`.
- [Queries](/arc/backend/queries/) — reads, exposed to the frontend as typed proxies (including live, observable ones).

The magic that ties it to the frontend is [Proxy generation](/arc/backend/proxy-generation/) — read it
early; it's why the whole stack is type-safe.

## Integrations

Arc meets the rest of your stack:

| Topic | What it covers |
| ------- | ----------- |
| [MongoDB](/arc/backend/mongodb/) | Document storage for read models and other data. |
| [Entity Framework](/arc/backend/entity-framework/) | EF Core integration for relational read models. |
| [Chronicle](/arc/backend/chronicle/) | Event sourcing integration — append events from commands, build read models, feed state back into business rules. |
| [ASP.NET Core](/arc/backend/asp-net-core/) | How Arc plugs into the ASP.NET Core pipeline. |

## Cross-cutting

| Topic | What it covers |
| ------- | ----------- |
| [Core](/arc/backend/core/) | Commands, queries, and dependency injection at the lower level. |
| [Identity](/arc/backend/identity/) | Who the user is — authentication and identity details. |
| [Tenancy](/arc/backend/tenancy/overview/) | Multi-tenant isolation. |
| [Open API](/arc/backend/open-api/) | OpenAPI/Swagger generation. |
| [Code Analysis](/arc/backend/code-analysis/) | Analyzers and fixers that catch mistakes at compile time. |

Building the UI on top? Head to the [frontend](/arc/frontend/), which consumes everything here
through the generated proxies.
