Graph Fundamentals
The Building Blocks: Resources and Relationships
At its heart, rescile builds a directed property graph. This graph consists of two simple but powerful components, which are analogous to objects and pointers in programming:
-
Resources (Nodes): A resource represents an object instance in your environment, like an
application, aserver, or afirewall_rule. Every resource has:- A type (its class, e.g.,
"server"). - A name (its primary key, e.g.,
"billing-api_server"). - An optional set of properties (its member variables).
- A type (its class, e.g.,
-
Relationships (Edges): A relationship is a directed link—a pointer or reference—from one resource to another. Every relationship has:
- A type (e.g.,
"HOSTS"), describing the nature of the connection. - A direction (from a source to a target resource).
- An optional set of properties.
- A type (e.g.,
Your rescile configuration is the source code that tells the rescile engine how to create, connect, and mutate these resources and relationships to form a complete model of your environment.