Sermant logo

Sermant

Proxyless Java Service Mesh Powered by Bytecode Enhancement

Sermant injects governance capabilities into Java microservices via bytecode enhancement, eliminating sidecars and offering a plugin ecosystem for heartbeat, routing, and observability without source code changes.

Sermant banner

Overview

Overview

Sermant is a proxyless service mesh that leverages Java bytecode enhancement to embed service‑governance functions directly into applications. By attaching a JavaAgent at runtime, it dynamically instruments code, providing features such as heartbeat, dynamic configuration, and gateway services without requiring a sidecar proxy.

Architecture & Extensibility

The solution consists of a core framework layer that handles heartbeat, data transmission, and configuration, and a plugin layer where developers can implement custom governance logic. Class‑isolation technology prevents conflicts between framework, plugin, and application classes. A backend component receives telemetry and configuration updates, while an external dynamic configuration center (e.g., servicecomb‑kie) supplies runtime instructions. This design enables Java teams to adopt service‑mesh capabilities with minimal operational overhead.

Getting Started

Users download the Sermant release, start the backend, enable desired services in the agent configuration, and launch their Java application with the -javaagent flag. The mesh status is viewable via a local web UI at http://localhost:8900.

Highlights

Proxyless architecture eliminates sidecar overhead
Bytecode enhancement injects governance without source changes
Plugin framework with core and service layers
Class‑isolation prevents classloader conflicts

Pros

  • Low latency and resource usage compared to sidecar meshes
  • Transparent to existing Java applications
  • Extensible via custom plugins
  • CNCF sandbox project adds community credibility

Considerations

  • Limited to Java ecosystems
  • Requires JVM startup with JavaAgent flag
  • Relies on an external dynamic configuration center
  • Potential complexity with classloader isolation

Managed products teams compare with

When teams consider Sermant, these hosted platforms usually appear on the same shortlist.

AWS App Mesh logo

AWS App Mesh

Managed service mesh that simplifies monitoring and controlling inter-service communication in microservices

Google Cloud Service Mesh logo

Google Cloud Service Mesh

Fully managed service mesh on Google Cloud for traffic management and observability

Tetrate Service Bridge logo

Tetrate Service Bridge

Enterprise service mesh management platform extending Istio across multi-cloud environments

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Java microservice teams seeking sidecar‑free mesh
  • Organizations wanting CNCF‑aligned cloud‑native solutions
  • Developers who prefer plugin‑based governance extensions
  • Projects that need runtime configuration updates

Not ideal when

  • Polyglot environments with non‑Java services
  • Use cases demanding low‑level network proxy features
  • Teams unable to modify JVM launch parameters
  • Scenarios requiring a built‑in UI for mesh management

How teams use it

Circuit Breaking for Spring Cloud Services

Automatic fault tolerance injected via a plugin without deploying sidecars

Centralized Health Heartbeat for Dubbo Applications

Real‑time service status reported to the backend for monitoring

Dynamic Routing in Spring Cloud Gateway

Routes updated at runtime through configuration center without redeploying services

Observability Data Collection

Metrics and traces gathered by a plugin and sent to external monitoring systems

Tech snapshot

Java98%
Vue1%
Python1%
TypeScript1%
C1%
Shell1%

Tags

javaagentdubbospringcloudcloud-nativemicroservice-architectureservice-meshcncfsermant

Frequently asked questions

Do I need to modify my application source code?

No. Sermant uses a JavaAgent to instrument bytecode at runtime, leaving source code untouched.

How does Sermant differ from sidecar‑based meshes?

It embeds governance logic directly into the JVM, removing the need for separate proxy containers.

What components are required to run Sermant?

The JavaAgent, Sermant backend service, and a dynamic configuration center (e.g., servicecomb‑kie).

Is Sermant part of the CNCF?

Yes, it is a CNCF sandbox project.

Project at a glance

Active
Stars
1,359
Watchers
1,359
Forks
188
LicenseApache-2.0
Repo age4 years old
Last commit3 months ago
Primary languageJava

Last synced 3 hours ago