mcpField
J
java-microservices

java-microservices

github.com/pluginagentmarketplaceDevelopment41499 installsUpdated 42w ago
Repository

About java-microservices

A skill for designing and building Java microservices with Spring Cloud and distributed-system patterns. It is intended for developers working on service communication, resilience, messaging, and observability, with implementation topics and troubleshooting guidance.

Key features

  1. 01Spring Cloud service discovery and gateways
  2. 02Resilience patterns with Resilience4j
  3. 03Kafka and event-driven architecture
  4. 04Distributed tracing, metrics, and log correlation
  5. 05Troubleshooting and implementation examples

Use cases

  1. 01Designing a Spring Cloud microservices architecture
  2. 02Adding circuit breakers and retries to services
  3. 03Building event-driven flows with Kafka
  4. 04Investigating service failures and tracing requests

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/pluginagentmarketplace/custom-plugin-java --skill java-microservices

After installing, type/java-microservicesin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

assets/
config.yaml
microservices-checklist.yaml
schema.json
references/
GUIDE.md
PATTERNS.md
scripts/
validate.py

Details

From the project README

Java Microservices Skill

Build production microservices with Spring Cloud and distributed system patterns.

Overview

This skill covers microservices architecture with Spring Cloud including service discovery, API gateway, circuit breakers, event-driven communication, and distributed tracing.

When to Use This Skill

Use when you need to:

  • Design microservices architecture
  • Implement service-to-service communication
  • Configure resilience patterns
  • Set up event-driven messaging
  • Add distributed tracing

Topics Covered

Spring Cloud Components
  • Config Server (centralized config)
  • Service Discovery (Eureka, Consul)
  • API Gateway (Spring Cloud Gateway)
  • Load Balancing (Spring Cloud LoadBalancer)
Resilience Patterns
  • Circuit Breaker (Resilience4j)
  • Retry with backoff
  • Bulkhead isolation
  • Rate limiting
Event-Driven Architecture
  • Apache Kafka integration
  • Spring Cloud Stream
  • Saga pattern
  • Event sourcing basics
Observability
  • Distributed tracing (Micrometer)
  • Metrics (Prometheus)
  • Log correlation

Quick Reference

// Saga with Choreography
@Component
public class OrderSagaListener {

    @KafkaListener(topics = "order.created")
    public void handleOrderCreated(OrderCreatedEvent event) {
        inventoryService.reserve(event.getItems());
    }

    @KafkaListener(topics = "payment.failed")
    public void handlePaymentFailed(PaymentFailedEvent event) {
        // Compensating transaction
        inventoryService.release(event.getOrderId());
        orderService.cancel(event.getOrderId());
    }
}

// Circuit Breaker Configuration
@Configuration
public class ResilienceConfig {

    @Bean
    public Customizer<Resilience4JCircuitBreakerFactory> cbCustomizer() {
        return factory -> factory.configureDefault(id ->
            new Resilience4JConfigBuilder(id)
                .circuitBreakerConfig(CircuitBreakerConfig.custom()
                    .failureRateThreshold(50)
                    .waitDurationInOpenState(Duration.ofSeconds(30))
                    .slidingWindowSize(10)
                    .build())
                .build());
    }
}

// API Gateway Routes
@Configuration
public class GatewayConfig {

    @Bean
    public RouteLocator routes(RouteLocatorBuilder builder) {
        return builder.routes()
            .route("orders", r -> r
                .path("/api/orders/**")
                .filters(f -> f
                    .stripPrefix(1)
                    .circuitBreaker(c -> c.setName("order-cb"))
                    .retry(retry -> retry.setRetries(3)))
                .uri("lb://order-service"))
            .build();
    }
}

Observability Configuration

management:
  tracing:
    sampling:
      probability: 1.0
  endpoints:
    web:
      exposure:
        include: health,info,metrics,prometheus

logging:
  pattern:
    level: "%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]"

Common Patterns

Saga Pattern
Order → Inventory → Payment → (Success | Compensate)
Circuit Breaker States
CLOSED → (failures exceed threshold) → OPEN
OPEN → (wait duration) → HALF_OPEN
HALF_OPEN → (success) → CLOSED
HALF_OPEN → (failure) → OPEN

Troubleshooting

Common Issues
ProblemCauseSolution
Cascade failureNo circuit breakerAdd Resilience4j
Message lostNo ackEnable manual ack
Inconsistent dataNo compensationImplement saga
Service not foundDiscovery delayTune heartbeat
Debug Checklist
□ Trace request (traceId)
□ Check circuit breaker state
□ Verify Kafka consumer lag
□ Review gateway routes
□ Monitor retry counts

Usage

Skill("java-microservices")

Related Skills

  • java-spring-boot - Spring Cloud
  • java-docker - Containerization

Comments

Markdown supported