lamp-cloud: A Java Microservice Platform for Multi-Tenant SaaS Applications
[灯灯]微服务中后台快速开发平台,支持jdk21、jdk17、jdk8,专注于多租户、开放平台解决方案,亦可作为普通项目(非SaaS架构)的基础开发框架使用,目前已实现插拔式数据库隔离、SCHEMA隔离、字段隔离 等租户隔离方案。
At a glance
- What is it?
- lamp-cloud (lamp 快速开发平台) is a Spring Cloud Alibaba based rapid development platform focused on multi-tenant SaaS architecture, offering pluggable tenant isolation at the database, schema, and column level alongside RBAC, code generation, and distributed transaction support. New users should work from the java17/5.x branch; the project has an open-source edition on GitHub and a commercial sponsor edition on a private repository.
- Who is it for?
- lamp-cloud suits Java teams building multi-tenant SaaS backends who want a ready scaffold with RBAC, a visual code generator, distributed transactions via Seata, and multiple tenant isolation strategies already wired together. The last push to the java17/5.x branch was on 2026-09-22.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 8 days ago.
- What is it written in?
- Mainly Java, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What lamp-cloud Is and Who It Is For
lamp-cloud is a backend rapid-development scaffold built on Spring Cloud Alibaba, Spring Cloud, and Spring Boot. Its defining feature is multi-tenant SaaS support with multiple isolation models. The README describes the platform as suitable both for SaaS products that serve many tenants and for standard single-tenant projects that want a structured starting point. The project is part of a larger ecosystem called lamp (灯灯), which is Chinese for 'lamp' or 'light'. The ecosystem comprises lamp-util (a utility library), lamp-cloud (the backend), lamp-job (a distributed scheduler), and lamp-web (a frontend based on vben-admin). lamp-cloud cannot be compiled without lamp-util, so the build order documented in the README is mandatory: lamp-util first, then lamp-cloud, then lamp-job.
Tenant Isolation: Four Pluggable Strategies
The central architectural feature of lamp-cloud is its pluggable tenant isolation. The README lists four implemented strategies: database isolation (each tenant's data lives in a separate database), schema isolation (each tenant gets a separate schema within the same database), field isolation (a tenant discriminator column partitions rows in shared tables), and no isolation (suitable for projects that do not need multi-tenancy at all). Nested tenant isolation is also documented: a large tenant can contain smaller sub-tenants. The choice of isolation strategy is described as pluggable, meaning teams can select the approach that matches their data governance requirements and compliance constraints without rewriting the core platform. Multiple demo environments are available at tangyh.top showing datasource mode and field mode side by side. The datasource mode demo runs on two versions of the frontend (vben5 and vben2), reachable at max-datasource.tangyh.top and datasource.tangyh.top respectively. The field mode demo likewise runs on two frontend versions at max-column.tangyh.top and column.tangyh.top. A non-tenant demo without any tenant isolation is at none.tangyh.top. These separate environments let evaluators compare how the same backend platform behaves under different isolation strategies before committing to one for a production deployment.
Core Features Beyond Multi-Tenancy
The README lists the platform's capabilities beyond tenant isolation. RBAC is implemented as a role-based access control system scoped to the tenant's applications rather than just to the platform as a whole. Gateway authentication handles authentication centrally via the Spring Cloud Gateway. Data permissions control which records a user can see based on their role. The caching solution includes protection against cache penetration, which is a design pattern concern rather than just a library choice. A visual code generator produces both frontend and backend code. File storage supports multiple backends, and SMS and email interfaces support multiple providers. Gray release (canary deployment) is listed. XSS and SQL injection protection are built in. Distributed transactions use Seata. The distributed job scheduler is lamp-job, maintained as a separate repository. The README lists the main technology stack as Spring Cloud Alibaba, SpringBoot, Mybatis, Seata, Sentinel, RabbitMQ, FastDFS/MinIO, and SkyWalking. Each component brings its own operational requirements: Seata needs a transaction coordinator service, Sentinel needs a dashboard for flow-control rules, and SkyWalking needs a separate collector and UI. Teams considering lamp-cloud should inventory which of these services they are prepared to operate before starting development.
Repository Layout and the Compilation Order Requirement
lamp-cloud is a Maven multi-module project. The top-level modules visible in the repository include lamp-gateway (the Spring Cloud Gateway entry point), lamp-oauth (authentication and authorisation), lamp-system, lamp-support, lamp-base, lamp-generator, and lamp-public. The README explicitly states that lamp-cloud depends on lamp-util, which is a separate repository. This means developers must clone lamp-util separately, compile it, and install it to the local Maven repository before the lamp-cloud build can succeed. The documented compilation order is: lamp-util, then lamp-cloud, then lamp-job. New users are directed to the `java17/5.x` branch; the other branches are described as old version code. The JDK support covers versions 8, 17, and 21, with the active branch targeting Java 17.
Open-Source vs. Sponsor Edition
The README is direct about the two-tier distribution. The open-source edition follows the Apache-2.0 licence and is available on GitHub and Gitee. The sponsor edition is hosted on a private GitLab and is unlocked by purchasing access. The README quotes: 'The open-source edition is born from passion; the sponsor edition is a concession to livelihood.' The Apache-2.0 licence permits commercial use of the open-source edition, modification, and redistribution, as long as a copy of the licence is included, modified files are noted, and any redistribution of products derived from this code includes a reference to the original project. The sponsor edition's additional features are documented on the tangyh.top website but are not available in the public repository. Teams evaluating whether the open-source feature set is sufficient should compare it against the sponsor feature list before starting development.
Limitations: Dependency Chain, Documentation, and Team Size
lamp-cloud's multi-module structure and external dependency on lamp-util make the initial setup more involved than a self-contained starter project. The primary documentation is at tangyh.top, which is in Chinese; the README notes that a mini-program (WeChat applet) is available for reading the documentation. This is a meaningful barrier for teams that do not read Chinese. The frontend component (lamp-web) is also a separate repository, based on vben-admin and maintained independently. A team adopting lamp-cloud as a base framework is committing to a dependency graph that spans at least three repositories (lamp-util, lamp-cloud, lamp-web) before writing any business logic. The root of the lamp-cloud repository also includes a Jenkinsfile for CI pipeline configuration. The tech stack (Spring Cloud Alibaba, Seata, Sentinel, RabbitMQ, FastDFS/MinIO, SkyWalking) is production-grade but requires familiarity with each component for operation and troubleshooting. Sentinel in particular needs a running dashboard to manage flow-control and circuit-breaker rules at runtime; without it, Sentinel still functions but its rules cannot be modified dynamically. The README notes that the project is part of the Dromara open-source organisation, which hosts a collection of Java ecosystem projects. Teams who find the documentation gaps in lamp-cloud itself can sometimes find supplementary context from other Dromara project communities.
Comparison to Pure Spring Boot Starters
Spring Initializr and the Spring Boot starter ecosystem let a team assemble a Spring Boot application from individual components: Spring Security for authentication, Spring Data for persistence, and chosen third-party integrations for the rest. This approach gives full control over every dependency but requires the team to design and implement the multi-tenant architecture themselves. lamp-cloud provides that architecture pre-assembled and pre-tested for the SaaS use case, at the cost of adopting a set of conventions and a codebase that must be understood before customisation. For teams with SaaS requirements and Java expertise, lamp-cloud shortens the time to a working tenant isolation proof of concept. For teams building a single application without tenants, the platform adds complexity and overhead that a plain Spring Boot project avoids entirely. The visual code generator is a differentiating feature: it produces both backend service code and frontend component code from a table definition, which reduces the repetitive work of building CRUD modules for each entity in a large multi-tenant system.
Editorial conclusion
lamp-cloud suits Java teams building multi-tenant SaaS backends who want a ready scaffold with RBAC, a visual code generator, distributed transactions via Seata, and multiple tenant isolation strategies already wired together. The last push to the java17/5.x branch was on 2026-09-22. Teams building a single-tenant internal tool will find it over-engineered: the multi-tenant infrastructure adds setup complexity that brings no benefit when tenants are not a requirement. Before starting, verify which JDK version matches the branch you intend to use (JDK 8, 17, or 21 are all mentioned), confirm that lamp-util is compiled and installed in the local Maven repository first since lamp-cloud depends on it, and review the distinction between the open-source Apache-2.0 edition on GitHub and the sponsor edition on the private GitLab, which includes features not present in the public codebase.
Frequently asked questions
Which JDK versions does lamp-cloud support?
The README lists support for JDK 8, JDK 17, and JDK 21. New users are directed to the java17/5.x branch, which targets Java 17. Other branches contain older version code.
Does lamp-cloud require lamp-util to be installed first?
Yes. lamp-cloud depends on lamp-util, which is a separate repository. The README specifies the compilation order: lamp-util must be compiled and installed to the local Maven repository before lamp-cloud can be built.
What is the difference between the lamp-cloud open-source and sponsor editions?
The open-source edition is hosted on GitHub and Gitee under the Apache-2.0 licence. The sponsor edition is hosted on a private GitLab and requires a paid account. The feature comparison is documented at tangyh.top.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/dromara-lamp-cloud)