Apache OpenWhisk: Serverless Platform for Event-Driven Applications
Apache OpenWhisk is an open-source, serverless platform that lets developers build scalable applications by executing functions in response to events. It abstracts infrastructure management, automatically handling scaling, resource allocation, and deployment via Docker containers.
Key Features
- Polyglot Language Support: Write functions in NodeJS, Java, Python, Swift, Go, PHP, Ruby, .NET (C#, F#), Scala, Rust, and Ballerina. Docker actions enable custom runtimes for additional languages like Haskell and Deno (experimental).
- Event-Driven Triggers: Execute code automatically in response to HTTP requests, database changes, IoT events, or message queues (e.g., MQTT, Kafka).
- Web & API Integration: Serve dynamic web content or REST APIs using Web Actions, with support for cookies, redirects, and custom headers.
- Action Sequences: Chain functions into workflows for complex data processing (e.g., split, sort, transform).
- Enterprise-Grade Scalability: Supports thousands of concurrent executions with per-request scaling.
Use Cases
- Real-time IoT data processing (sensor analytics, alerts).
- Microservices & API backends for web/mobile apps.
- Legacy application modernization via serverless workflows.
Deploy locally (Minishift/OpenShift) or on cloud platforms like Kubernetes. Manage functions using the wsk
CLI or integrate with DevOps pipelines.
Apache OpenWhisk is developed under the Apache Software Foundation, with contributions from IBM, Adobe, and Red Hat.
Supported Languages: JavaScript (NodeJS), Python, Java, Swift, Go, PHP, Ruby, .NET (C#, F#), Scala, Rust, Ballerina, and Docker-based custom runtimes[1][3][8].
Citations:
[1] https://opensource.com/article/18/11/developing-functions-service-apache-openwhisk
[2] https://www.fanruan.com/en/glossary/data-integration/apache-openwhisk
[3] https://www.vshn.ch/en/blog/a-very-quick-comparison-of-kubernetes-serverless-frameworks/
[4] https://www.techtarget.com/searchapparchitecture/definition/Apache-OpenWhisk
[5] https://developers.redhat.com/blog/2018/05/16/summit-faas-openwhisk-openshift
[6] https://github.com/apache/openwhisk-runtime-java
[7] https://github.com/apache/openwhisk/blob/master/docs/actions.md
[8] https://openwhisk.apache.org