Skip to main content

Overview

WIP. The eigr.io documentation is a work-in-progress right now.

Abstract​

Serverless runtimes are often hidden in a cloud providers offering and exposed solely by their programming API and deployment procedures. eigr.io is 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.

Key Points​

  • The eigr/functions project is no fork of Cloudstate but based on a new implementation of the Cloudstate protocol.
  • The technical basis for project eigr is Erlang/OTP and the BEAM-VM.
  • Developer Libraries are intended to be compatible with Cloudstate and Akka Serverless.

Function as a Service (FaaS)​

FaaS
╔═══════════════╗    ╔═══════════════════╗    ╔═══════════════╗
β•‘ β•‘ β•‘ β•‘ β•‘ β•‘
β•‘ Message In ║───▢║ Service ║───▢║ Message Out β•‘
β•‘ β•‘ β•‘ β•‘ β•‘ β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

"message in, message out" – BonΓ©r, 2020, "CloudStateβ€”Towards Stateful Serverless"

Stateful Services​

State is brought to the incoming message right at the time the message passed to the service and even before the service handles that message. This is possible by state-models that are abstracted in a way so that state can be lifted to a context available to a service that has chosen the very state-model.

Stateful FaaS
╔═══════════════╗                             ╔═══════════════╗
β•‘ ║─┐ β”Œβ”€β–Άβ•‘ β•‘
β•‘ Message In β•‘ β”‚ ╔═══════════════════╗ β”‚ β•‘ Message Out β•‘
β•‘ β•‘ └─▢║ β•‘β”€β”˜ β•‘ β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β•‘ Service β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
╔═══════════════╗ β”Œβ”€β–Άβ•‘ ║─┐ ╔═══════════════╗
β•‘ β•‘ β”‚ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β”‚ β•‘ β•‘
β•‘ State In β•‘β”€β”˜ └─▢║ State Out β•‘
β•‘ β•‘ β•‘ β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•