Serverless runtimes are often hidden in a cloud providers offering and exposed solely by their programming API and deployment procedures. In this talk, we’ll explore an open-source Serverless runtime built for the cloud and on-premises, running on the BEAM with a polyglot programming model to build general purpose applications.
Building general purpose applications using multiple languages and having a story how to handle state was our main motivation to explore the space of a Serverless runtime to be built. We think the BEAM, OTP and Elixir/Erlang are a perfect match to build on.
With this talk, we combine herein the world of the BEAM with cloud technology like a gRPC-based protocol, Kubernetes and a polyglot programming model with languages supported like Go, JavaScript, JVM-languages, Python and many more.
https://icfp21.sigplan.org/details/erlang-2021-papers/13/Lightning-Talk-eigr-io-A-Serverless-Runtime-on-the-BEAM
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
eigr.io – a Serverless Runtime on the BEAM (ACM SIGPLAN, ICFP 2021 Erlang Workshop)
1. eigr.io – A Serverless
Runtime on the BEAM
ACM SIGPLAN, ICFP Erlang Workshop 2021
Marcel Lanz, August 26th 2021
2. • eigr.io – Eigr Functions
• A Serverless Runtime on the BEAM
• Highlights
• Inversion of State, a Protocol, being Polyglot
• Current State & Challenges
eigr.io – A Serverless Runtime on the BEAM
ACM SIGPLAN, ICFP Erlang Workshop 2021
Agenda
3. • Serverless Runtime
• that enables General Purpose Applications to be built
• Open Source Project
• Bases on a concept of another open source project
• Inactive at the moment
• Implementation of a Cloudstate Service Proxy
• Based on a Protocol
• Polyglot SDKs
ACM SIGPLAN, ICFP Erlang Workshop 2021
Eigr Functions
eigr.io – A Serverless Runtime on the BEAM
4. ACM SIGPLAN, ICFP Erlang Workshop 2021
Highlights
• A Service Proxy
• with managed State
• Cloud Native deployment (k8s)
• A Protocol
• gRPC based, with a spec and a TCK
• Polyglot Programming Model
• SDKs in
JavaScript, Python, Kotlin, Java,
Go, C#, Dart, Elixir, …
• … and it runs on the BEAM :)
eigr.io – A Serverless Runtime on the BEAM
5. • “Message IN, Message OUT”
• eigr/massa
• Implemented in Elixir
• Kubernetes Operator
• Sidecar Proxy
ACM SIGPLAN, ICFP Erlang Workshop 2021
Service Proxy
eigr.io – A Serverless Runtime on the BEAM
6. • FaaS is usually stateless
• State is brought to the
function.
• State Model to choose
• Action
• Eventsourcing
• CRDTs
• Value Entity (CRUD)
ACM SIGPLAN, ICFP Erlang Workshop 2021
Inversion of State
eigr.io – A Serverless Runtime on the BEAM
7. • Eigr Functions implements the Cloudstate Protocol
• Abstracts State
• defines these State Models in *.proto files
• gRPC based
• based on HTTP/2
• enables Streaming
• Protocol spec defined in *.proto (protocol buffer)
• Technology Compatibility Kit (TCK)
• ensures proxy and SDKs compatiblity
ACM SIGPLAN, ICFP Erlang Workshop 2021
A Protocol to use
eigr.io – A Serverless Runtime on the BEAM
8. • SDK support for all gRPC enabled languages possible
• gRPC compiler available
• JavaScript, Java and Go with 100% TCK coverage
• Python, Kotlin, Java, Go, C#, Dart, Elixir with at least Support for
Eventsourcing
ACM SIGPLAN, ICFP Erlang Workshop 2021
Polyglot Programming Model
eigr.io – A Serverless Runtime on the BEAM
9. • Service Proxy in Elixir (eigr/massa)
• gRPC Reflection ☑
• Discovery and Action Protocol ☑
• Next Challenges
• Implement State Models
• CRDT, Eventsourcing, CRUD
• Enhance and Improve SDKs
• Focus on JS, Java, Python and Go
• Enhance the TCK
ACM SIGPLAN, ICFP Erlang Workshop 2021
Current State & Challenges
eigr.io – A Serverless Runtime on the BEAM
10. ACM SIGPLAN, ICFP Erlang Workshop 2021
Marcel Lanz, August 26th 2021
Thanks!
eigr.io
github.com/eigr
@eigr_io
❤ 🙌 thanks to all contributors and supporters:
Adriano Santos, Alain-Michel Chomnoue Nghemning, GratefulTony, Guy Youansi, Weslei Juan Moser Pereira,
Jonathan Nagy, Peter Vlugter, Vladimir Korenev, Ursula Hitz, Viktor Klang, Cloudstate.io and many more…