Skillshub spring-boot-microservices
Standards for Feign clients and asynchronous messaging with Spring Cloud Stream. Use when implementing Feign HTTP clients or async event messaging in Spring Boot microservices. (triggers: **/*Client.java, **/*Consumer.java, feign-client, spring-cloud-stream, rabbitmq, resilience4j)
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/HoangNguyen0403/agent-skills-standard/spring-boot-microservices" ~/.claude/skills/comeonoliver-skillshub-spring-boot-microservices && rm -rf "$T"
manifest:
skills/HoangNguyen0403/agent-skills-standard/spring-boot-microservices/SKILL.mdsource content
Spring Boot Microservices Standards
Priority: P0
Implementation Guidelines
Sync Communication (REST & API Interface)
- Clients: Use
orSpring Cloud OpenFeign
(Spring 6/Java 21).HTTP Interfaces - Resilience: Implement
withResilience4j
,Circuit Breaker
, andRetry (Exponential Backoff)
. Use fallback methods to return cached or default data on failure. Configure timeout values on all Feign clients.RateLimiter - Contracts: Share
via aDTO Records
orMaven BOM
module.API Contract - Tracing: Ensure
propagation for Distributed Tracing.Micrometers
Async Communication (Spring Cloud Stream)
- Architecture: Use
patterns withMessage-Driven
.Spring Cloud Stream - Functions: Define message handlers as
,java.util.function.Function
, orConsumer
.Supplier - Serialization: Use
orJSON
for events.Avro - Reliability: Implement
(DLQ) andDead Letter Queues
consumers.Idempotent
Data & Isolation
- DB per Service: NEVER share databases between microservices.
- Shared Libs: Minimize shared logic to shared DTOs/Clients only.
- Discovery: Use
for routing and auth.Spring Cloud Gateway
Anti-Patterns
- No Shared DB: Services must communicate via APIs or Events only.
- No Shared Entities: Share DTOs via Maven BOM, never JPA entities.
- No Sync Call Chains: Use async messaging to prevent distributed monolith.