Module Architecture
Module Interface
All modules implement a common interface:
type Module interface {
Name() string
Description() string
Version() string
ConfigSchema() Schema
Configure(config Config) error
Requires() []string
Provides() []string
Execute(ctx context.Context, data DataContext) error
Initialize() error
Cleanup() error
}
Module Lifecycle
- Registration:
init()or dynamic loading - Initialization: One-time setup (connections, data)
- Configuration: Apply runtime config
- Execution: Perform work (can be called multiple times)
- Cleanup: Release resources
Module Types
- Embedded: Compiled Go code, in-process
- External: Separate process via gRPC
- WASM: WebAssembly sandboxed execution
See Module System for development guide.