Skip to main content

Go-Lynx Plugin Ecosystem

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

PluginDescriptionDoc
HTTPHTTP/HTTPS server with TLS, middleware, metrics, health checksYes
gRPCgRPC server and client with discovery, TLS, circuit breakerYes
PolarisService registration, discovery, and traffic managementYes
NacosNacos registration, discovery, and configuration centerYes

Database & Storage

PluginDescriptionDoc
DatabaseGeneric DB plugin (MySQL/PostgreSQL/SQL Server via driver)Yes
RedisRedis client with connection pool and metricsYes
MongoDBMongoDB client with pool, TLS, health checksYes
ElasticsearchElasticsearch integrationGitHub

Message Queue

PluginDescriptionDoc
KafkaApache Kafka producer/consumer with SASL, TLS, metricsYes
RabbitMQRabbitMQ producer/consumerGitHub
RocketMQApache RocketMQGitHub
PulsarApache PulsarGitHub

Configuration & Discovery

PluginDescriptionDoc
PolarisService discovery and configYes
NacosNacos config and namingYes
ApolloApollo configuration centerGitHub
EtcdEtcd for config and discoveryGitHub

Observability & Security

PluginDescriptionDoc
TracerOpenTelemetry distributed tracingYes
SwaggerSwagger/OpenAPI UI (dev/test only)Yes
SentinelFlow control, circuit breaker, system protectionYes
TLS ManagerTLS configuration and certificate managementYes

Distributed & Lock

PluginDescriptionDoc
SeataDistributed transactions (Seata)Yes
DTMDistributed transaction (DTM)GitHub
Redis LockDistributed lock based on RedisGitHub
Etcd LockDistributed lock based on EtcdGitHub

Other

PluginDescriptionDoc
LayoutOfficial project template and scaffoldingGitHub
SQL SDKSQL and multi-datasource utilitiesGitHub

Legend: Documented on this site | See GitHub repo

Using Plugins

  1. Add dependency: go get github.com/go-lynx/lynx/plugins/<name> (or the plugin's module path).
  2. Configure: Add a lynx.<plugin> section in your config.yaml.
  3. Import: import _ "github.com/go-lynx/lynx/plugins/<name>" in main.go (or as required by the plugin).
  4. 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