explaingit

mosn/mosn

4,524GoAudience · ops devopsComplexity · 5/5Setup · hard

TLDR

MOSN is a high-performance network proxy written in Go, battle-tested at massive scale by Ant Group, that routes traffic between services and handles load balancing, health checks, circuit breaking, and observability in a service mesh.

Mindmap

mindmap
  root((MOSN))
    What it does
      Traffic routing
      Load balancing
      Service mesh proxy
    Tech Stack
      Go
      Istio
      Prometheus
      WebAssembly
      gRPC
    Use Cases
      Service mesh data plane
      API gateway
      Kubernetes ingress
    Features
      Circuit breakers
      TLS rotation
      Distributed tracing
      Hot reload
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace Envoy as the data plane proxy in an Istio service mesh using MOSN for better Go ecosystem integration

USE CASE 2

Run MOSN as a standalone API gateway or load balancer without needing a full service mesh control plane

USE CASE 3

Deploy MOSN as a Kubernetes ingress controller to handle all incoming cluster traffic

USE CASE 4

Extend MOSN with custom routing logic written as WebAssembly plugins

Tech stack

GoIstioPrometheusWebAssemblygRPC

Getting it running

Difficulty · hard Time to first run · 1day+

Requires Kubernetes or a service mesh environment, full integration with Istio demands substantial infrastructure experience.

No licence information was provided in the explanation.

In plain English

MOSN (Modular Open Smart Network) is a network proxy written in Go, open-sourced by Ant Group, the financial technology company behind Alipay. According to the README, it has been verified in production by hundreds of thousands of containers during Ant Group's annual 11.11 global shopping festival, one of the largest retail traffic events in the world. In practical terms, MOSN sits in front of your services and handles how network traffic gets routed between them. This is the role of a service mesh data plane proxy. Instead of each service in your system needing to handle routing, retries, load balancing, and security on its own, you run a MOSN proxy alongside each service, and those proxies handle that work transparently. MOSN can integrate with Istio, which is a widely-used service mesh control plane. In that setup, Istio tells MOSN how to route traffic, and MOSN carries out the actual work. But MOSN can also run independently as a load balancer, an API gateway, or a Kubernetes ingress controller without Istio. The feature list in the README is long. On the protocol side it supports HTTP/1.1, HTTP/2, gRPC, and an extension framework for custom protocols. Routing can be based on headers, URL paths, prefixes, variables, and weighted splits. For backend management it supports connection pooling, health checks, circuit breakers, and several load balancing strategies. For observability it integrates with Jaeger and SkyWalking for tracing, and exposes Prometheus-compatible metrics. TLS with certificate rotation is supported, as is hot reload for zero-downtime upgrades. Extensions can be written in Go as plugins, as separate processes, or compiled to WebAssembly.

Copy-paste prompts

Prompt 1
Help me replace Envoy with MOSN as the sidecar proxy in my Istio service mesh
Prompt 2
How do I deploy MOSN as a standalone load balancer in front of my microservices without using Istio?
Prompt 3
Show me how to configure MOSN circuit breaker behavior between two of my services
Prompt 4
How do I set up distributed tracing with Jaeger in MOSN so I can trace requests across services?
Open on GitHub → Explain another repo

← mosn on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.