Components and architecture
In this section, we discuss the architecture and components of OpenWhisk. OpenWhisk is designed to be a rock-solid FaaS platform as it is powering IBM Cloud Function, one of the FaaS production systems already launched by IBM. The key of this rock-solid architecture is Kafka. OpenWhisk cleverly uses Kafka as its backbone to guarantee that every single function request accepted by Kafka will be delivered to the invoker layer. Let's start by looking its overall architecture.
Architecture
The following diagram in Figure 6.2 shows the overall architecture of OpenWhisk:
Figure 6.2: The overview architecture of OpenWhisk.
The edge component is the API gateway built on top of NGINX and OpenResty. The API gateway optionally uses Redis for caching. The API gateway sits in front of one or more controllers. The controller stores all configuration in a CouchDB cluster. Behind the controller, there is a Kafka cluster coordinated by a ZooKeeper quorum. The Kafka cluster is very...