Coordinators¶
Coordinators perform domain-level workflows that cannot be satisfied by a single manager. They combine multiple queries, apply service-specific logic, and return structured payloads tailored to a service’s needs.
Purpose¶
A coordinator exists whenever:
Several managers must be queried together.
Results must be merged or transformed into a domain-specific payload.
Additional validation or reshaping is required beyond what GraphQL returns.
Data from custom GPP operations must be combined with standard results.
Coordinators are always constructed and owned by a director, and they all share
the same configured gpp_client.GPPClient instance.
Examples of Responsibilities¶
Constructing GOATS-specific observation payloads.
Reassembling scheduler summaries that require cross-resource lookups.
Fetching derived fields not directly returned by a single GraphQL operation.
Normalizing complex ODB structures for downstream applications.
Coordinators vs. Managers¶
Managers:
Wrap a single GraphQL operation.
Provide typed resource-level CRUD interfaces.
Coordinators:
Combine managers.
Run multi-step workflows.
Produce service-specific outputs.