Template repository for building your own Tiny Systems module. Fork this repo to get started.
A minimal Echo component that receives a message and passes it through:
func (t *Component) Handle(ctx context.Context, handler module.Handler, port string, msg interface{}) any {
if in, ok := msg.(InMessage); ok {
return handler(ctx, OutPort, in.Context)
}
return fmt.Errorf("invalid message")
}This demonstrates the core patterns:
- Component interface (
GetInfo,Handle,Ports,Instance) - Input/output ports with typed messages
- Handler response propagation (blocking I/O)
configurable:"true"struct tag for edge data mapping
cmd/main.go # Entry point — registers components, runs CLI
components/echo/echo.go # Example component
go.mod # SDK dependency (github.com/tiny-systems/module)
- Use this template — click "Use this template" on GitHub
- Rename the module in
go.mod - Add your components under
components/ - Register them via
init()+registry.Register()
go run cmd/main.go run \
--name=my-org/my-module-v1 \
--namespace=tinysystems \
--version=1.0.0# Build container image
docker build -t myregistry/my-module:1.0.0 .
docker push myregistry/my-module:1.0.0
# Install via Helm
helm repo add tinysystems https://tiny-systems.github.io/module/
helm install my-module tinysystems/tinysystems-operator \
--set controllerManager.manager.image.repository=myregistry/my-module- Developer Guide — build your first component
- Module SDK — core library
- Component Examples — real-world patterns
- Tiny Systems Platform — visual editor and module directory
This module's source code is MIT-licensed. It depends on the Tiny Systems Module SDK (BSL 1.1). See LICENSE for details.