DocumentationBuild. Deploy. Operate.
DocsConcepts

Nodes & Domains

On this page 3 sections

A node is one running QSCS process on one host. A domain (also called a cluster) is a named collection of nodes that serve the same set of origins.

This page describes how the two relate and what each one stores.

What a node knows

Each node keeps four small pieces of state on disk:

  • Its identity, a UUID, generated on first start, that uniquely identifies this node across all clusters it ever joins.
  • Its license, proves to the control plane that this node is allowed to participate.
  • Its configuration file, /etc/qscs/qscs.conf. This is the file QSCS reads at startup; the subscribe command rewrites it.
  • Its cache, recent response bodies, in memory and (optionally) on disk for warm restarts.

A node can belong to one cluster at a time. To move it, simply re-subscribe.

What a domain is

A domain has:

  • A short, human-friendly tag (for example europe-edge).
  • A list of member nodes with their public addresses.
  • A designated master (one of the members).
  • A list of origins, virtual hostnames mapped to backend addresses.

Membership and origins live in the control plane. When a node subscribes to a domain it pulls this information and rewrites its local configuration file.

Lifecycle

EventWhat changes
Node startsReads qscs.conf, opens cache, binds listening port.
License activatesNode UUID is bound to an account in the control plane.
Domain subscribedConfig is rewritten with new peers and origins; daemon must restart.
Origins added/removedRe-subscribe and restart to pick them up.
Master changedEach node re-subscribes; new master holds backend addresses; thin clients rewrite to point at new master.
Node removedRemaining members re-subscribe to drop it from their peer list.
Why re-subscribe instead of hot-reload? Re-subscribing is cheap (one HTTP call to the control plane, one config rewrite) and the daemon restart takes well under a second. Doing the change as an atomic restart avoids the half-states that creep into long-lived daemons that try to reconfigure themselves on the fly.
Need a hand with your deployment?Contact support ↗Back to top ↑