Skip to content

Services

The functional services layer sits on top of DTOflow. Services share data through DTOs published to DTOflow rather than calling each other directly over REST. When a service mutates data it owns, it publishes a new DTO version; any other service that needs that data subscribes through the Change Queue System (CQS) and reacts asynchronously. This makes the platform loosely coupled: adding a new consumer never requires changes to the producing service.

Service catalogue

Service Legacy name Tech DTOs owned CQS subscriptions Responsibility
studio-design-library platform-designer-service Quarkus (Java 21) design, canvasdesign, designimage, font, palette, esltype, canvastype Manages all creative assets and publishes immutable designs
link-registry link-service Quarkus (Java 21) storeesl, link.v2, storeeslstatus, store Source of record for ESL↔store assignments and item↔ESL↔design mappings
studio-scenario-library platform-scenario-service Quarkus (GraalVM native) communicationpack Manages communication packs containing CEL-based scenario rule sets
studio-link-evaluator platform-evaluation-engine Quarkus (GraalVM native) studiolink communicationpack.v1, link.v2, storeitemvalues.v1 Stateless CEL evaluator; selects winning design per ESL and writes studiolink
studio-renderer image-render-service Node.js studioeslimage studiolink.v1, storeitemvalues.v1, design.v1, storeesl.v1, canvasdesign.v1 Renders PNG images from evaluated studiolinks and stores them via LFS
pricer-server On-premises gateway storeeslstatus, itemproperties, itemprocessingparameters, eccmodel, eccfont, eccparameters, ecceslimage, eccimage eslimage.v1, storeesl.v1 On-premise hardware gateway; consumes eslimage and storeesl directly from CQS and transmits images to ESL hardware; writes lifecycle status
item-registry platform-item-service Quarkus storeitemvalues, itemproperties, itemprocessingparameters Source of record for item property values and processing config per store
ecc-image-render-service ecc-render Quarkus ecceslimage, eccimage ecclink.v1, eccmodel.v1, eccfont.v1, eccparameters.v1 Renders ECC-model images for MultiItem and EccSingle link variants
ecclink-projector Quarkus ecclink link.v2 Projects ECC-branch link.v2 records into ecclink DTOs
eslimage-merger Quarkus eslimage studioeslimage.v1, ecceslimage.v1 Merges studio and ECC renderer outputs into the single final eslimage DTO
dtoflow-lfs dtoflow-file-service Large File Storage; services upload to GCS directly; external UIs read via this service
actions-library platform-plaza-actions-task Quarkus taskdefinition Manages ESL flash task definitions
dtoflow-migration-helper dtoflow-migration-helper Quarkus studioeslimage.v1 Transitional. Bridges new studioeslimage DTO to legacy renderedimage consumers during migration

Legacy names appear in older code, Cloud Run service names in non-migrated environments, Cloud Monitoring alert policies, and IAM bindings created before PLT-2122. See ADR-002 for the full canonical-name mapping.

CQS subscription source of truth. The authoritative mapping of queue → subscribed DTOs is poc-changequeue-service/src/main/resources/application.yml in this repo. When a service page's "CQS Subscriptions" list disagrees with that file, the YAML is correct — update the doc. Each service page is intended to summarize what the runtime is actually subscribed to, not to define it.