Skip to content

Latest commit

 

History

History
114 lines (63 loc) · 5.2 KB

README.md

File metadata and controls

114 lines (63 loc) · 5.2 KB

Layotto (L8):To be the next layer of OSI layer 7

codecov

查看中文版本

Layotto 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 uses the open source MOSN as the base, in addition to providing distributed capabilities, it also provides Service Mesh's ability to control traffic.

Motivation

Layotto aims to combine 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, Layotto can both serve as the data plane of istio and provide various Runtime APIs (such as Configuration API, Pub/Sub API, etc.)

Features

  • 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
  • Multilingual programming based on WASM

Project Architecture

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 sdk 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.

Architecture

Quickstarts and Samples

Get started with Layotto

See the quick start guide configuration demo with apollo that can help you get started with Layotto.

Use Pub/Sub API

Implementing Pub/Sub Pattern using Layotto and Redis

Use State API to manage state

State management demo with redis

Use Distributed Lock API

Distributed Lock API demo with redis

Traffic intervention on the 4th layer network

Dump TCP Traffic

Flow Control on the 7th layer network

Method Level Flow Control

Health check and metadata query

Use Layotto Actuator for health check and metadata query

Service Invocation

Hello World

Dubbo JSON RPC

Integrate with istio

As the data plane of istio

Multilingual programming based on WASM

WASM on Layotto

Design Documents

actuator-design-doc

configuration-api-with-apollo

pubsub-api-and-compability-with-dapr-component

rpc-design-doc

distributed-lock-api-design

Community

Contact Us

Platform Link
💬 DingTalk (preferred) Search the group number: 31912621 or scan the QR code below

Contributing to Layotto

See the Development Guide to get started with building and developing.

FAQ

Difference with dapr?

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.