BKB + BoT + SpringBoot
🎉Fast Delivery 🧩Safe Refactor 🍵Low Tech-debt
Shard and Cascade Configigruation
Properties can be broken down into separate files that take effect after cascading
Multi Language and Timezone
Automatic timezone config and adjustment, static and dynamic i18n config and conversion
Versioning of Data and Schema
Manage schema and data changes with a git-like and sql-based tool called flywave
Powful Type-safe SqlMapping
Achieve business goals faster, pay off tech-debt faster, and refactor safely
Distrib, Spliting and Sharding
Efficient distributed ID, on-demand data sharding and read/write splitting
Engineered Jackson Configuration
Compatible convention and secure check for biz types, eg. number, datetime, timezone
Host extension and URL override
Domain-based skin, inherit and override URL without reverse proxy, just SpringMVC
Distrib Session and Multi-Auth
Hazelcast-based distributed Session, cookie encryption, and alias name
JVM/Distrib Cache, Lock, and Objects
JVM and distributed objects, locks, and events with Cache2k and Hazelcast
Throttle, Debounce, Tamper Proof
Backend debounce, service throttle, content tamper proof, captcha protection
3rd Login, Role/Perm Management
Oauth2 Integration, fine-grained permission based on app, feature and domain
Pluggable modules, OOTB features
Pluggable module, Out-of-the-box feature, script, manual and code generator
🥾 WingsBoot
WingsBoot=BKB + BootsOfTravel + SpringBoot. if you've liked Dota, you know.
We advocate defensive programming, May The
false
Be With You !
It is suitable for growing teams to smoothly achieve business growth, technology evolution, team pulling and business upgrading. The core values are: ① quickly achieve business goals; ② timely repay technical debt; ③ safely refactor programs and business. For example, starting from a single app, to sharding, to micro service and to cloud, the team is able to:
- Rapidly refactor the business and its code, safely change the data models - strongly typed and defensive style
- Use git and sql to manage versioning of data and schema - Flywave tool (not Flyway)
- Trace, review and recover online data changes - logging system and tracing strategy
📦 Tech Architecture
- Philosophy and Conventions, Non-Intrusion Enhancement 🌱 Apache2
- Main business language, OpenJDK long-time running ☕️ GPLv2+CE
- Assisted language, as a better Java Apache2
- The main type-safe SqlMapping 🏅 Apache2
- Main business database, recommend 8.0.31 💡 GPLv2
- Standalone database for offline and disconnected operations MPL2 or EPL1
- Distributed caching, messaging, streaming, etc. Apache2
- More engineering and compact Cloud solution Apache2
- Database RW splitting, data sharding and elastic scaling Apache2
🐵 Mindless Use
Use directly as a parent, occasional SNAPSHOT
are available through OSS.
<parent>
<groupId>pro.fessional</groupId>
<artifactId>wings</artifactId>
<version>${wings.version}</version>
</parent>
🦁 Hands-on Use
It's recommended that you get your hands on the code to avoid low-level use and failure to achieve the original purpose, even if you have the potential to get it.
## (1) get source code
git clone --depth 1 https://github.com/\
trydofor/professional-wings.git
## (2) install dependency useing java8
# asdf shell java temurin-8.0.412+8
git submodule update --remote --init
(cd observe/meepo && mvn package install)
(cd observe/mirana && mvn package install)
## (3) install wings using java-21
# asdf shell java temurin-21.0.3+9.0.LTS
mvn package install
🚀 Built on 2024-08-31 14ebccb0d5 Commit