SECTOR 04 // CONCEPTS

The provider model

How Shinari configures providers, what it refuses, and the two ways a capability gets implemented.

A provider is a named, namespaced bundle of capabilities; each capability is a verb addressed <provider>.<verb>. Namespacing is mandatory; collisions are impossible by construction.

How configuration works #

Deliberately refused #

Two implementations, one model #

kindwritten inwhen
built-in nativeGo, compiled inthe arsenal: docker, toxiproxy, net, http, exec
composedYAML macros over other verbsyour domain vocabulary; most teams never need more

The taste test that routes authorship: can it be composed from existing verbs? Yes means a composed provider. No means a native verb. Author discipline (“don’t forget the exactly-once assertion”) is never a verb; it’s a validate rule.

The sdk package is the isolation seam every native provider implements, so adding k8s or podman later is a new provider: scenarios using docker.* change while the engine does not.