Skip to content

Services

Taubyte's architecture allows nodes to host multiple services, with the exception of gateway and substrate. For a cloud to operate optimally, it requires at least one instance of each service, except for gateway.

Auth

The Auth service is the cornerstone of security, managing authentication, authorization, and secrets across the platform. It integrates with git providers to map repository access to projects and securely stores credentials for other services. Auth serves as the central authority for:

  • Deployment keys
  • WebHook secrets
  • X509 certificates
  • ACME challenges (e.g., Let's Encrypt)

Auth is a replicated service, utilizing CRDT for high throughput and seamless horizontal scaling.

Seer

Seer functions as the network's directory, maintaining a comprehensive record of all nodes. It stores data on services, usage, and metadata, sharing this information internally with services like gateway and, in a way, externally via DNS. Seer acts as a DNS service, facilitating discovery and load balancing. Seer nodes communicate through pub-sub and use CRDT to maintain consistency.

TNS

TNS, or Taubyte Name Service, is a powerful distributed registry that keeps track of all the projects hosted on the platform. It is designed to map GitHub branches and commits, ensuring version consistency across the board. This makes it incredibly easy to verify if a project has changed. TNS leverages CRDT (Conflict-free Replicated Data Type) for seamless replication, just like the Auth and Seer services, providing high reliability and consistency.

Gateway

The Gateway service acts as the platform's load balancer. It identifies nodes running the substrate service and maintains multiplexed connections with healthy nodes. Requests are routed based on a scoring system that evaluates factors like cache status, resource availability, and latency.

Patrick

Patrick orchestrates CI/CD jobs, listening for events from git providers over HTTPS. It validates requests, creates build jobs with appropriate attributes (e.g., commit ID), and manages job lifecycles, updating job statuses. Patrick, like other services, uses CRDT for replication.

Monkey

Monkey is a worker service that competes for CI/CD jobs. Given that CI/CD jobs aren't executed immediately, a race-to-lock system is employed. Once a job is locked, it is executed, with status and logs sent to Patrick. Configuration is published to TNS, and assets are marked for replication by the hoarder service.

Hoarder

Hoarder manages the replication of assets, storage, and databases. Instances of Hoarder communicate asset and resource IDs, assigning rarity scores. Rare items prompt competition among Hoarder instances for storage.

Substrate

Substrate is the powerhouse of event processing in Taubyte. It actively listens for events from various sources such as HTTP requests, Pub-Sub messages, and more.