Events in SlimFaas
SlimFaas supports a basic “publish/subscribe” model for broadcasting events to all replicas of a function. This can be used to trigger internal actions or notify your functions of certain events.
1. Subscribe to Events
To allow a function to receive events, add the annotation SlimFaas/SubscribeEvents to the function's deployment:
metadata:
annotations:
SlimFaas/SubscribeEvents: "Public:my-event1,Private:my-event2,my-event3"
- Public events can be sent from any source.
- Private events can only be sent by trusted pods or within the same namespace.
- If you omit
Public:orPrivate:, it defaults toSlimFaas/DefaultVisibility.
2. Publishing an Event
Use the following HTTP route to publish an event:
-
Endpoint:
POST http://<slimfaas>/publish-event/<eventName>/<path> -
Body (any JSON payload):
{
"data": "my-event-data"
}
- Response:
204 (No Content)
3. Example
curl -X POST -H "Content-Type: application/json" \
-d '{"data":"hello"}' \
http://localhost:30021/publish-event/my-event-name/hello
All function replicas that have subscribed to my-event-name will receive a POST request at their /hello URL (e.g., http://<pod_ip>:<pod_port>/hello), and can handle it as needed.