Backend microservice development
Applicable scenarios
- Adding or modifying Kotlin / Java backend functionality
- Adding a Resource, Service, DAO, or microservice module
- Determining which service a feature should belong to
- Organizing code according to the project's layering conventions
Inapplicable scenarios
- Frontend Vue page development
- Go Agent development
- Designing only API contracts or database models
Quick guidance
- This skill focuses on "how BK-CI backend functionality is organized and placed," not a plain Spring Boot introduction.
- Before development, first determine service ownership, then decide where the interface, service, and data layers go.
- The core layering is still API, business implementation, startup module, and data model; do not place logic across layers arbitrarily.
- Interactions between services go through API contracts; do not directly touch other services' databases.
- If the question is about interface design details, also see
api-interface-design; if it is about testing, also see unit-testing。
High-signal rules
- Feature placement more easily determines subsequent maintenance cost than the code implementation itself
- Only when the boundaries of Resource, Service, and DAO are clear will subsequent extension be stable
- Microservices share only contracts, not storage implementations
Key pitfalls
- For speed, stuffing logic directly into the Resource
- Incorrect service ownership determination, leading to subsequent cross-service coupling
- Directly accessing other services' data because it is convenient to call
Further reading
- If you are designing interfaces: also see
api-interface-design
- If you are writing tests: also see
unit-testing
- If you are looking at infrastructure: also see
microservice-infrastructure
- If you are looking at Spring Boot framework practices: also see
springboot-backend-conventions