Layotto(/leɪˈɒtəʊ/) is an application runtime developed using Golang, which provides various distributed capabilities for applications, such as state management, configuration management, and event pub/sub capabilities to simplify application development.
Layotto is built on the open source data plane MOSN .In addition to providing distributed building blocks, Layotto can also serve as the data plane of Service Mesh and has the ability to control traffic.
Layotto aims to combine Multi-Runtime with Service Mesh into one sidecar. No matter which product you are using as the Service Mesh data plane (e.g. MOSN,Envoy or any other product), you can always attach Layotto to it and add Multi-Runtime capabilities without adding new sidecars.
For example, by adding Runtime capabilities to MOSN, a Layotto process can both serve as the data plane of istio and provide various Runtime APIs (such as Configuration API, Pub/Sub API, etc.)
In addition, we were surprised to find that a sidecar can do much more than that. We are trying to make Layotto even the runtime container of FaaS (Function as a service) and reloadable sdk with the magic power of WebAssembly .
- Service Communication
- Service Governance.Such as traffic hijacking and observation, service rate limiting, etc
- As the data plane of istio
- Configuration management
- State management
- Event publish and subscribe
- Health check, query runtime metadata
- FaaS model based on WASM and Runtime
As shown in the architecture diagram below, Layotto uses the open source MOSN as the base to provide network layer management capabilities while providing distributed capabilities. The business logic can directly interact with Layotto through a lightweight SDK without paying attention to the specific back-end infrastructure.
Layotto provides sdks in various languages. The sdk interacts with Layotto through grpc. Application developers only need to specify their own infrastructure type through the configuration file configure file provided by Layotto. No coding changes are required, which greatly improves the portability of the program.
See the quick start guide configuration demo with apollo that can help you get started with Layotto.
Implementing Pub/Sub Pattern using Layotto and Redis
State management demo with redis
Distributed Lock API demo with redis
Use Layotto Actuator for health check and metadata query
pubsub-api-and-compability-with-dapr-component
Platform | Link |
---|---|
💬 DingTalk (preferred) | Search the group number: 31912621 or scan the QR code below |
See the Development Guide to get started with building and developing.
dapr is an excellent Runtime product, but it lacks the ability of Service Mesh, which is necessary for the Runtime product used in production environment, so we hope to combine Runtime with Service Mesh into one sidecar to meet more complex production requirements.