Skip to main content
RDT describes a RegattaDB deployment with a single JSON configuration file, stored under ~/.rdt/configs/<name>.json. This page documents the schema. For the commands used to create, edit, and manage these files, see Creating & Managing Configs.

Deployment guidelines

Before designing a configuration, keep RegattaDB’s general module placement guidelines in mind:
  • SM: exactly one per deployment.
  • SNA: one per node that hosts at least one operational module (GDD, DCM, Sequencer, or RDB).
  • GDD, DCM, Sequencer: exactly one per deployment.
  • RDB: at least one per deployment; a node may host multiple RDB modules.
With that in mind, here’s the JSON schema itself: the fields that make up the Cluster, Node, Device, and Module objects in a config file.

Cluster

Cluster-level validation:
  • Node id must be unique across the deployment.
  • Exactly one instance each of SM, Sequencer, GDD, and DCM across the entire deployment (not per node).

Node

Node-level validation:
  • At most one instance each of SM, SNA, Sequencer, GDD, and DCM is allowed per node (mirrors the cluster-level rule).
  • Module ids must be unique within the node.
  • Every device name referenced by a module must exist in the node’s devices list.
  • Two modules on the same node cannot reference the same device.

Device

Module

All modules share a common set of fields; each module type additionally has fixed defaults for id, port, and service_port.

Module type defaults

Core binding

A module can be pinned to specific CPU cores via its config:
  • core_binded_node is required whenever core_binded_cores is set.
  • If num_threads is left unset, it’s derived automatically from the core range.
  • If num_threads is set, it must not exceed the number of cores in the range.

Example

A minimal single-node config with one RDB storage device:
See Creating & Managing Configs to learn how to generate, edit, and validate files like this without hand-writing the JSON, and Config Recipes for multi-node and probed-hardware examples.

Templates

rdt config create --from <template> starts a config from a packaged template instead of a blank one. Two templates ship with RDT today:
  • xsmall: a single-node, all-in-one layout: one node running all module types (SM, SNA, Sequencer, GDD, DCM, RDB).
  • small: a 3-node “classic” multi-node layout: node_1 runs every module type (like xsmall), while node_2 and node_3 each run only SNA and RDB.
No devices or CPU/RAM values are specified in either template. Adjust these, the node IPs, and the node count for your environment.

Next steps

See Creating & Managing Configs for the commands that create, edit, validate, and share these configuration files.