{"ref":"content:sap-cap-controller-service-repository-architecture","page":"/content/sap-cap-controller-service-repository-architecture","json":"/content/sap-cap-controller-service-repository-architecture.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-cap-controller-service-repository-architecture","title":"SAP CAP: Controller - Service - Repository architecture","url":"https://community.sap.com/t5/technology-blog-posts-by-members/sap-cap-controller-service-repository-architecture/ba-p/13674697","content_type":"blog","explains":["artifact:dxfrontier-cds-ts-dispatcher","artifact:dxfrontier-cds-ts-repository","capability:typescript-patterns"],"summary":"The pattern the author's two libraries exist to support, set out as a whole rather than one package at a time: a controller layer receiving the request, a service layer holding business logic, and a repository layer owning persistence — the separation CAP leaves to the developer once a model has produced an OData service. Read after the dispatcher and repository posts, or before them as the argument for both.","short":"Controller, service and repository layers in a CAP application","authors":["actor:dragolea"],"published":"2024-04-22","sources":[{"url":"https://community.sap.com/t5/technology-blog-posts-by-members/sap-cap-controller-service-repository-architecture/ba-p/13674697","title":"SAP CAP: Controller - Service - Repository architecture — SAP Community","checked":"2026-09-07"}],"provenance":{"discovered_via":[{"source":"source:sap-community","channel":"cap-tag"}],"first_seen":"2026-09-07"},"drafted_with_ai":true,"published_on":"source:sap-community"},"readings":{"liveness":[{"label":"Checked against the source","tier":"unknown","evidence":"nobody has checked it"},{"label":"Source reachable","tier":"unknown","evidence":"not crawled"},{"label":"Age","tier":"fair","evidence":"published 30 months ago"}],"compatibility":[{"label":"Version","tier":"unknown","evidence":"no version declared"},{"label":"Moved since?","tier":"poor","evidence":"@dxfrontier/cds-ts-dispatcher 3.0, 2.0, 3.0, 4.0, 5.0, 4.0, 5.0, 6.0, 6.0, 7.0 since publication"},{"label":"Findings","tier":"good","evidence":"none flagged"}],"reach":[{"value":3585,"unit":"views"},{"value":0,"unit":"comments"},{"value":2,"unit":"likes"}]},"signals":{"views":3585,"likes":2,"comments":0,"metrics_at":"2026-10-25"},"series":null,"edges":{"authors":[{"ref":"actor:dragolea","name":"Daniel Dragolea","json":"/actors/dragolea.json"}]}}