convoy docs
Search

Architecture

How convoy is built, for contributors and operators.

These pages describe how the convoy components work inside: the process boundaries, the status ownership, the reconcile code path, storage and sharding. For the behavior that users see, read Concepts first.

  • Components

    The three convoy binaries and the kubectl plugin, what each one owns, and how they communicate.

  • Status ownership

    Which component writes each status field and each ReleaseInventory field, and the Server-Side Apply field manager that it uses.

  • Reconcile flow

    The code path of one Release reconcile in the controller-manager, and the observer loops that work with it.

  • Health loop

    How the HealthController of the observer assesses the ReleaseInventory, writes health, polls hooks and wakes the controller.

  • Render storage

    How the controller-manager writes renders and their history to an object store, and how the observer reads them.

  • Sharding

    How convoy divides the reconcile work between replicas with shard leases, for high availability and for scale.

  • Shard-scoped caches

    How --shard-scoped-cache makes each replica cache only the objects of its own shards.

  • Rollout state machine

    How the release controller decides the rollout state, the verdict and the rollback in each reconcile.

  • Cluster auth providers

    How convoy builds the connection to a target cluster and how the source controllers authenticate.