Services Expose Capabilities
Summary
Services should expose useful platform or domain capabilities, not table access or provider clients disguised as application code.
Problem
If every API route, job, or UI workflow reaches into persistence or providers directly, behavior is duplicated and future changes require broad edits.
Principle
Put reusable behavior behind service functions, classes, or packages with clear ownership. Let callers ask for capabilities, not implementation details.
Platform Shape
The architecture docs describe services as the internal capability layer. The service-category reference classifies operational state machines, lakehouse/data services, execution services, ops support, shared capability services, bounded domains, and domain job helpers.
Source Evidence
docs/reference/architecture.mddocs/reference/service-package-categories.mdservices
Related Reading
docs/engineering/reference/service-package-categories.mddocs/engineering/concepts/messy-edge-typed-inside.md