{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","results":{"codes":[]},"settings":"","params":[]},"next":{"description":"","pages":[]},"title":"Planetary Scale Applications","type":"basic","slug":"what-is-the-lasp-suite","excerpt":"How does Lasp provide support for planetary scale applications?","body":"Lasp is composed of a group of Erlang libraries, that work together, to provide services for the development of planetary scale applications.\n\nThis 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.\n[block:api-header]\n{\n  \"title\": \"Libraries\"\n}\n[/block]\n### Main\n* [lasp](https://github.com/lasp-lang/lasp) provides the entire Lasp programming system\n\n### Core\n* [lasp_pg](https://github.com/lasp-lang/lasp_pg) provides an eventually consistent process registry\n\n### Distribution\n* [partisan](https://github.com/lasp-lang/partisan) provides a replacement for distributed Erlang that provides configurable topologies depending on your application needs;\n* [plumtree](https://github.com/lasp-lang/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; \n* [ishikawa](https://github.com/lasp-lang/ishikawa) provides tagged reliable causal broadcast support for partisan\n\n### Data Structures\n* [types](https://github.com/lasp-lang/types) provides a reference implementations of both operation-based, state-based, and delta-based Conflict-free Replicated Data Types\n\n### Deployment \n* [sprinter](https://github.com/lasp-lang/sprinter) provides service discovery layer for operating Lasp components on both Mesosphere's DC/OS and Google's Kubernetes\n[block:api-header]\n{\n  \"title\": \"Adoption\"\n}\n[/block]\nLasp is used as part of the underlying infrastructure for Space-Time Insights's adaptation of Microsoft Orleans in Erlang, [erleans](https://github.com/GOFactory/erleans).\n[block:api-header]\n{\n  \"title\": \"Architecture Diagram of the Lasp Programming System\"\n}\n[/block]\nEach 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](https://github.com/lasp-lang/lasp).\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/ba9c077-Architecture_Diagram.png\",\n        \"Architecture Diagram.png\",\n        864,\n        648,\n        \"#c5c5c5\"\n      ]\n    }\n  ]\n}\n[/block]","updates":["58f6687452927c0f00cc2116"],"order":0,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"58f5ec48cf6b642300b14029","__v":1,"category":{"sync":{"isSync":false,"url":""},"pages":[],"title":"Overview","slug":"lasp-suite","order":0,"from_sync":false,"reference":false,"_id":"58f5eaa74c413f19007a2858","__v":0,"createdAt":"2017-04-18T10:29:59.789Z","project":"5612c2a00fbdb60d00e4c7d1","version":"5612c2a00fbdb60d00e4c7d4"},"createdAt":"2017-04-18T10:36:56.340Z","version":{"version":"0.0.1","version_clean":"0.0.1","codename":"","is_stable":true,"is_beta":true,"is_hidden":false,"is_deprecated":false,"categories":["5612c2a10fbdb60d00e4c7d5","58e6b64bc397de1b00173c09","58e6b68eb1eece19008b81fe","58e6b6d185ec873100be9734","58f5e5c2616bbb1b00d54c15","58f5eaa74c413f19007a2858","58f767a79c723f19004e1ca9"],"_id":"5612c2a00fbdb60d00e4c7d4","createdAt":"2015-10-05T18:34:08.611Z","releaseDate":"2015-10-05T18:34:08.611Z","__v":7,"project":"5612c2a00fbdb60d00e4c7d1"},"githubsync":"","project":"5612c2a00fbdb60d00e4c7d1","parentDoc":null,"user":"5612c290c0731b0d00625078"}

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. [block:api-header] { "title": "Libraries" } [/block] ### Main * [lasp](https://github.com/lasp-lang/lasp) provides the entire Lasp programming system ### Core * [lasp_pg](https://github.com/lasp-lang/lasp_pg) provides an eventually consistent process registry ### Distribution * [partisan](https://github.com/lasp-lang/partisan) provides a replacement for distributed Erlang that provides configurable topologies depending on your application needs; * [plumtree](https://github.com/lasp-lang/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](https://github.com/lasp-lang/ishikawa) provides tagged reliable causal broadcast support for partisan ### Data Structures * [types](https://github.com/lasp-lang/types) provides a reference implementations of both operation-based, state-based, and delta-based Conflict-free Replicated Data Types ### Deployment * [sprinter](https://github.com/lasp-lang/sprinter) provides service discovery layer for operating Lasp components on both Mesosphere's DC/OS and Google's Kubernetes [block:api-header] { "title": "Adoption" } [/block] Lasp is used as part of the underlying infrastructure for Space-Time Insights's adaptation of Microsoft Orleans in Erlang, [erleans](https://github.com/GOFactory/erleans). [block:api-header] { "title": "Architecture Diagram of the Lasp Programming System" } [/block] 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](https://github.com/lasp-lang/lasp). [block:image] { "images": [ { "image": [ "https://files.readme.io/ba9c077-Architecture_Diagram.png", "Architecture Diagram.png", 864, 648, "#c5c5c5" ] } ] } [/block]