Skip to content

Architecture

Technology

Tangle consists of two components:

  • A server written in Golang that implements the API and serves web assets.
    • It uses the chi router since it offers useful, clearly beneficial features (route groups/middleware support) while being lightweight and using standard http handlers.
    • It uses the ArgoCD SDK to talk to ArgoCD servers.
    • Each ArgoCD API has a alitto/pond worker pool that allows us to balance concurrency against putting excess demand on the repo microservice..
    • Endpoints are documented with OpenAPI and server includes an embedded Swagger UI in the /swagger endpoint.
    • It uses standard observability tools like:
  • A static website written with Svelte and Typescript.

Additionally it uses the following tools to improve our development experience:

Principles

  1. Features should have feature parity for CI/CD systems (via API and CLI tools) and humans (via website).
  2. Interactions with ArgoCD should not interfere with its core job (deploying stuff!). Users should be able to set sane limits.