Vocabulary
This page defines the words used across DPG.
Network
Section titled “Network”A network is the top-level contract.
It defines:
- which domains exist
- which item types are allowed
- which instances are registered
- which actions are valid
- what request and event payloads look like
Examples:
yellow_dotblue_dot
Domain
Section titled “Domain”A domain is a business role inside a network.
Examples:
studenttutorseekerprovider
A domain is not a deployment. A domain can have many instances.
Instance
Section titled “Instance”An instance is a deployed backend that serves one or more network/domain bindings.
Examples:
- one API serving only
yellow_dot/student - one API serving
yellow_dot/student,yellow_dot/tutor - one API serving
yellow_dot/student,blue_dot/seeker
An item is a stored record under a domain.
Every item has:
item_networkitem_domainitem_typeitem_iditem_stateitem_instance_urlitem_schema_url
Schema Identifier
Section titled “Schema Identifier”A schema identifier is the value stored in item_type.
This should be versioned explicitly.
Good examples:
profile_1.0profile_1.1job_posting_1.0
Item Schema
Section titled “Item Schema”An item schema is the JSON Schema used to validate item_state.
DPG can use:
- a domain-defined inline schema from the network config
- an instance-specific custom schema URL
Action
Section titled “Action”An action is a structured interaction from one item to another.
Examples:
connectapply
Requirement Schema
Section titled “Requirement Schema”A requirement schema defines what a caller must send for an action interaction.
An event is the structured outcome of an action.
It is validated against the event_schema defined in the action interaction.
Served Domains
Section titled “Served Domains”SERVED_DOMAINS tells one backend which network/domain pairs it is responsible for.
Example:
SERVED_DOMAINS="yellow_dot/student,blue_dot/seeker"Inter-Instance Fetch
Section titled “Inter-Instance Fetch”An inter-instance fetch is a network-aware read across all registered instances for a given network/domain.
In DPG:
GET /api/v1/item/fetchis instance-localGET /api/v1/network/item/fetchis inter-instance