-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Labels
designThe issue is related to the high-level architectureThe issue is related to the high-level architectureenv/allTo indicate something that applies to all environmentsTo indicate something that applies to all environments
Description
We currently use our own internal message format and we're passing events through a local message bus (Java/Thrift queue implementation). CloudEvents provides a common event format and SDKs that support various transport bindings.
The suggestion is to refactor our eventing layer to use CloudEvents and its transport SDKs to pass messages between workers.
Discussion topics:
- encoding/decoding speed of CloudEvents SDK vs. our custom json parsing (in Java & Python)
- which choice of encoding between function workers? (python currently only supports json encoding)
- which transport between function workers
- integrate with Knative Eventing?
- mapping to CloudEvents (typing of workflow-internal and external events)
Workers are currently written in the function's language, so we'd need respective SDK support for whatever choice is made on encoding and transport. The respective SDK's performance on serializing/deserializing CloudEvents affects the workflow performance.
- On the bright side, typed events allow interoperability with other platforms, e.g. users can easier develop functions that consume or produce known event types.
- Using CloudEvents means the transport and binding can be adapted to use other messaging subsystems where applicable
Metadata
Metadata
Assignees
Labels
designThe issue is related to the high-level architectureThe issue is related to the high-level architectureenv/allTo indicate something that applies to all environmentsTo indicate something that applies to all environments