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.

API Reference

class gpp_client.coordinator.BaseCoordinator(client: GPPClient)[source]

Bases: object

Coordinate several managers to fulfil domain-level workflows.

client: GPPClient

Shared low-level client injected by the parent director.