Go-Lynx provides a rich set of production-ready plugins that cover service communication, data storage, message queues, configuration, observability, and distributed capabilities. All plugins follow the same plug-and-play pattern: configure in YAML and inject via the framework.
Plugin Categories
Service & Communication
| Plugin | Description | Doc |
|---|
| HTTP | HTTP/HTTPS server with TLS, middleware, metrics, health checks | Yes |
| gRPC | gRPC server and client with discovery, TLS, circuit breaker | Yes |
| Polaris | Service registration, discovery, and traffic management | Yes |
| Nacos | Nacos registration, discovery, and configuration center | Yes |
Database & Storage
| Plugin | Description | Doc |
|---|
| Database | Generic DB plugin (MySQL/PostgreSQL/SQL Server via driver) | Yes |
| Redis | Redis client with connection pool and metrics | Yes |
| MongoDB | MongoDB client with pool, TLS, health checks | Yes |
| Elasticsearch | Elasticsearch integration | GitHub |
Message Queue
| Plugin | Description | Doc |
|---|
| Kafka | Apache Kafka producer/consumer with SASL, TLS, metrics | Yes |
| RabbitMQ | RabbitMQ producer/consumer | GitHub |
| RocketMQ | Apache RocketMQ | GitHub |
| Pulsar | Apache Pulsar | GitHub |
Configuration & Discovery
| Plugin | Description | Doc |
|---|
| Polaris | Service discovery and config | Yes |
| Nacos | Nacos config and naming | Yes |
| Apollo | Apollo configuration center | GitHub |
| Etcd | Etcd for config and discovery | GitHub |
Observability & Security
| Plugin | Description | Doc |
|---|
| Tracer | OpenTelemetry distributed tracing | Yes |
| Swagger | Swagger/OpenAPI UI (dev/test only) | Yes |
| Sentinel | Flow control, circuit breaker, system protection | Yes |
| TLS Manager | TLS configuration and certificate management | Yes |
Distributed & Lock
| Plugin | Description | Doc |
|---|
| Seata | Distributed transactions (Seata) | Yes |
| DTM | Distributed transaction (DTM) | GitHub |
| Redis Lock | Distributed lock based on Redis | GitHub |
| Etcd Lock | Distributed lock based on Etcd | GitHub |
Other
| Plugin | Description | Doc |
|---|
| Layout | Official project template and scaffolding | GitHub |
| SQL SDK | SQL and multi-datasource utilities | GitHub |
Legend: Documented on this site | See GitHub repo
Using Plugins
- Add dependency:
go get github.com/go-lynx/lynx/plugins/<name> (or the plugin's module path).
- Configure: Add a
lynx.<plugin> section in your config.yaml.
- Import:
import _ "github.com/go-lynx/lynx/plugins/<name>" in main.go (or as required by the plugin).
- Inject: Use the plugin's getter (e.g.
db.GetDriver, lynxRedis.GetRedis) in your wire sets.
For bootstrap and plugin order, see Bootstrap & Config and Plugin Manager.
Related: Quick Start | Bootstrap Configuration | Plugin Management | Framework Architecture