Extensions & Plugins¶
Cullinan extensions should build on the unified container and Web Runtime rather than patching internal registries directly.
Common extension points¶
Container extensions¶
Register custom definitions or factories through ApplicationContext.
Controller extensions¶
Expose routes with controller decorators or explicit startup registration.
Middleware extensions¶
Add middleware to the gateway pipeline to influence request/response handling.
Lifecycle extensions¶
Use component lifecycle hooks or application startup/shutdown orchestration.
Recommended pattern¶
- Create explicit registration code for your extension
- Register definitions or middleware during application startup
- Keep registration idempotent for tests and repeated bootstraps
- Prefer public facades (
cullinan.core,cullinan.web.gateway,cullinan.transport.adapter)