Skip to content

Service Resource Manager (SRM)

The brains of the platform.

The Service Resource Manager (SRM) is the platform’s internal fulfilment engine. It receives requests from the Open Exposure Gateway (OEG) and the Federation Manager (FM), decides whether the target is local or a partner’s, and either fulfils locally through TF-SDK adapters or hands the request to FM. It keeps the authoritative catalog, topology and runtime inventory. It offers no API to App Providers: OEG and FM reach it inside the platform over the DataBus and an internal HTTP API that checks no token.

SRM: callers, inventory, TF-SDK, federated hand-off and backends

For a detailed overview of the SRM architecture, its internals, and how it interacts with other platform services, see the Overview & Architecture documentation.

What it does

  • Fulfils lifecycle commands from OEG and FM and reports outcomes on the DataBus.
  • Places each request on the topology (from pins when given, otherwise the first active zone and domain that offer the capability), or hands a non-local zone to FM.
  • Runs local fulfilment through TF-SDK adapters (in-process).
  • Serves catalog, topology and runtime inventory (plus synchronous queries) over internal HTTP.

Read in the specs

The SRM specification is four documents. Start from the question that matches what you need:

Question Where to read
What does SRM own, and who may call it? Overview & Architecture › Scope and Ownership, Overview & Architecture › Boundaries
How does a deploy run end to end? Requirements & Design › Deploy
How does placement choose a zone and domain? Requirements & Design › Deploy Placement
How do device-targeted capabilities pick a control path? Requirements & Design › Device-Targeted Control-Path Resolution
What happens when the zone is a partner’s? Requirements & Design › Federated Hand-off
What is catalog / topology / runtime inventory? Requirements & Design › Layers and Entities, Interface Contract › Database Schema
What are the commands, events and internal HTTP APIs? Interface Contract › DataBus Command Contracts, Interface Contract › Events Published by SRM, Interface Contract › Internal HTTP API
How does SRM talk to TF-SDK? Requirements & Design › TF-SDK

Code and deployment

Code. The implementation lives in the service-resource-manager repository. SRM is an async web service built with FastAPI; it keeps catalog, topology and runtime inventory in PostgreSQL, carries commands and events on the DataBus, and answers synchronous queries over internal HTTP. The codebase follows a hexagonal architecture (domain → application → adapters / api). Layout, settings and common changes are described in Implementation & Delivery › Code Layout.

Deployment. SRM ships with the oop-platform Helm umbrella chart (subchart srm). It depends on PostgreSQL and NATS, and on Federation Manager when federation is enabled. Topology and control paths are declared in srm.topology — see how to define zones and the SRM chart README. Platform install is covered in Deploy with Helm; build, image and startup order are in Implementation & Delivery › Build and Deployment. On the kind install from the provided script, SRM’s OpenAPI docs are at http://localhost:32415/docs; the port is published for development only, since the API has no login.