Planetary Scale Applications
How does Lasp provide support for planetary scale applications?
Lasp is composed of a group of Erlang libraries, that work together, to provide services for the development of planetary scale applications.
This is achieved through a set of components that have been designed to work together to provide a comprehensive solution for future Elixir and Erlang applications: large-scale, and geo-distributed. These components, provided as libraries, provide a cohesive solution, that can be used independently; each library is focused on solving a particular problem, composes easily with the other, and provides developer support for easing the development of these applications.
Libraries
Main
- lasp provides the entire Lasp programming system
Core
- lasp_pg provides an eventually consistent process registry
Distribution
- partisan provides a replacement for distributed Erlang that provides configurable topologies depending on your application needs;
- plumtree provides a fork of Basho's Plumtree library for optimizing overlay networks using spanning trees which are maintained decentrally and adapted to operate with partisan;
- ishikawa provides tagged reliable causal broadcast support for partisan
Data Structures
- types provides a reference implementations of both operation-based, state-based, and delta-based Conflict-free Replicated Data Types
Deployment
- sprinter provides service discovery layer for operating Lasp components on both Mesosphere's DC/OS and Google's Kubernetes
Adoption
Lasp is used as part of the underlying infrastructure for Space-Time Insights's adaptation of Microsoft Orleans in Erlang, erleans.
Architecture Diagram of the Lasp Programming System
Each of these libraries can be used independently, or optionally, as part of a deployment of the entire system. Here's one possible, and the default configuration, provided out of the box when you install the entire suite.
Updated less than a minute ago