Pallet uses the following domain terms:

Action : The basic unit of configuration supplied by pallet.

Action plan : A sequence of actions that have been called by phase.

Cluster Spec : A collection of groups, each with a :count key, that can be used to specify a cluster of heterogeneous group specs. A cluster may have a prefix, that is added to all the group names.

Crate : A namespace containing crate functions

Crate Function : A function taking a session and other arguments. A crate function can call other crate functions and actions.

Environment : A map that is used to pass in external data and configuration together with the servers that are running for that into pallet pallet. Can be specified at various scopes.

Group : A group of identically configured nodes, represented as a group-spec.

Group Name : The name used to identify a group.

Group Spec : A group of identically configured nodes, represented as a map with :group-name, :count and server-spec keys. The group-name is used to link running nodes to their configuration (via pallet.compute.Node/group-name)

Node : A node is a machine, either a physical server or a virtual machine.

Node Spec : A specification for a node. The node-spec provides an image, hardware, location and network template for starting new nodes.

Phase : A phase is a discrete set of configuration or other actions that you wish to be able to execute. It is a function taking a session, and calling crate functions and actions.

Settings : A map that is used to pass pass values between crates. Can be used on same node, or across nodes.

Role : A keyword that can be used to locate groups that implement a specific server-spec. It is attached to the server or group spec's :roles set.

Server : A map used to descibe the node, image, etc of a single node running as part of a group. A server has the following keys :group-name, :node, :node-id and server-spec keys.

Server Spec : A specification for a server. This is a map of phases and a default node-spec. A server-spec has the following keys :phase, :packager and node-spec keys.

Session : A map that is used to hold state and context information for the duration of a lift or converge call