Open Source Developers
This lane explains how the open-source repository is organized and how its main subsystems fit together.
Audience: Developer
Context: Use this section when you are reading, debugging, extending, or contributing to the Caracal codebase.
Core Explanation
The repository is organized around a container-first runtime plus a Python package that contains:
- runtime entrypoints and orchestration helpers
- a Click-based in-container CLI
- a Flow terminal UI
- core authority, delegation, ledger, and cryptography modules
- PostgreSQL, Redis, Merkle, monitoring, and migration layers
- provider registry and integration helpers
- deployment, sync, and release utilities
The developer docs are split so that architecture and module boundaries come before workflow and maintenance topics.
Reading Order
- Architecture
- Runtime Model
- Core Authority System
- Storage and Data
- Services and Integrations
- Flow TUI Internals
After that, move to:
Internal Behavior
Two repository rules explain much of the structure:
- the host
caracalcommand is orchestration-only - the product workflows live inside the runtime container, but they are still implemented in this same Python package
That is why the repository mixes deployment artifacts, runtime entrypoints, CLI code, TUI code, and core modules under one tree.
Edge Cases And Constraints
- Some modules still carry legacy compatibility surfaces, but the supported runtime model is now PostgreSQL plus Redis plus Merkle, not a pluggable local-file backend.
- Enterprise-related modules and env vars appear in public code because the open-source runtime exposes public connector surfaces, but enterprise internals remain out of scope here.