Programming language and architecture
You’re free to choose the programming language that best suits your plugin, but keep in mind that Lerian’s stack is primarily built in Golang, and your solution must interoperate with it through its standard interfaces. We recommend:
- Container-first design using Docker.
- Domain-Driven Design (DDD) for clean modularity.
- Isolation of concerns and microservice-friendly practices.
MSP model requirements
All plugins must be designed to run under the Managed Service Provider (MSP) model, with:
- Infrastructure as Code (IaC) documented, preferably in Terraform.
- Helm Charts for Kubernetes deployments.
- Declarative deployment with GitOps.
GitOps is required to ensure traceable and predictable production deployments across environments.
Observability
Plugins must be observable by design, including:
- Structured logs
- Domain-specific metrics
- Distributed tracing
Auditability and traceability
If your plugin handles transactions, it must integrate with Trillian or an equivalent solution for:
- Immutable, verifiable audit logs
- Integrity verification (off-chain capable)
Authentication and authorization
Every plugin must integrate with Lerian’s Access Manager, our identity and access control plugin.
This ensures a unified authentication experience for clients. For more information, refer to the Access Manager Guide .

