Controllers - execute business logic.
Resources - provide storage and resources.
Webhooks - defaulting, validation, conversion.
Resource stores stuff --> Controller does stuff.
Resources (example Foo resource) are stored in ETCD by the apiserver. Async watch notifications on object create / delete / update from Foo Resource in ETCD to Foo Controller.
- Request comes in to Request API - apiserver stores it in ETCD
- after object is stored apiserver sends watch events to clients watching that Resource type