Skip to main content

Module capability

Module capability 

Source
Expand description

Service capabilities and the mirror-side driver bindings that satisfy them (W265).

The problem this solves: a mesofact-static component wants “somewhere to put bytes that a browser can GET”. At the dev tier that used to be a disk-served directory, at sim it is MinIO over S3, at cloud it is R2. If the app has to know which, it grows an if dev { fs::write } else { s3_put } branch, and every later app inherits the same fork.

So the app declares a tier-agnostic capability and the mirror declares which driver implements it at this tier:

  component kind  ──derives──▶  Capability  ◀──binds──  [drivers.<cap>] in mirrors/<env>.toml

§P1 scope

Requirements are derived from the component kind — one match arm per kind, zero per-service boilerplate, because every service in-tree today is kind-implied. The explicit [requires] block in service.toml (for needs that aren’t kind-implied) and the binding-error surface (“service X needs s3, mirror Y binds no s3 driver”) are P2; see W265 §“Open follow-ups”.

Enums§

Capability
A tier-agnostic thing a service needs, independent of who provides it.