On this page

Astra architecture: every write goes through one engine

Clients (the Desk web UI, the mobile app and AI agents over MCP) call one Quarkus server. A request passes the REST API and the tenant-scoping kernel into the DocType engine, which writes to PostgreSQL under row-level security.

What is in the picture

  • Kernel and DocType engine: one JSONB table holds every DocType; overlays add per-tenant fields without migrations.
  • Apps: plain Java and YAML on astra-spi, hooked into the write path (CMS, Express, HRM, STMS).
  • Wasm host: per-tenant business formulas run in a sandbox with time limits.
  • Transactions: Seata (AT and TCC) with Redis coordinates writes that span services.
  • Identity: Keycloak with OIDC, SAML SSO and SCIM provisioning.
  • CDC worker: a Rust worker reads the write-ahead log and keeps read replicas up to date.

The interactive version is astra-architecture.en.html. The articles walk through each part: DocType, multi-tenancy, Seata, Keycloak, Wasm and CDC.

AI resources

Give your AI assistant the current company’s documentation, Markdown pages, and OpenAPI contract.

Source
Help me integrate with AstraCMS Docs (Không áp dụng).
Read https://zerohost-b69e460a-fdedfaced775e42578cf55c1346b15d0.zhst.app/astra-cms/en/llms.txt first, then https://zerohost-b69e460a-fdedfaced775e42578cf55c1346b15d0.zhst.app/astra-cms/en/llms-full.txt and https://zerohost-b69e460a-fdedfaced775e42578cf55c1346b15d0.zhst.app/astra-cms/en/openapi.json.
Use only the documented endpoints, authentication, schemas and examples. Ask me about my application stack and the operation I need before writing code. Identify any documented limitations or inconsistencies. Keep credentials in environment variables, never in client-side code. Use the sandbox for examples; do not execute requests or change production data without my explicit approval.
Documentation locale: en. API language value: en.
Current page: https://zerohost-b69e460a-fdedfaced775e42578cf55c1346b15d0.zhst.app/astra-cms/en/architecture.