Architecture
Fission consists of multiple components that build up the architecture. From a user’s and contributor’s perspective these components can be broadly grouped into core and optional components.
The core components are the ones you should definitely know about while using fission. The optional components, on the other hand, are good to know and can be learned as you go.
Core Components
The core components include:
Controller
Accept REST API requests and create Fission resources
Executor
Component to spin up function pods
Router
Bridge between triggers and functions
Function Pod
Place to load and execute the user function
Builder Manager
Compile the source code into a runnable function
Builder Pod
Place to build and create executable user function
StorageSvc
Home for source and deployment archives
Optional Components
The optional components include:
Logger
Record and persist function logs
KubeWatcher
Hawkeye to watch resource changes in Kubernetes cluster
Message Queue Trigger
Subscribe topics and invoke functions
Timer
Invoke functions periodically