Claude-skill-registry-data microservices
Guidelines for building production-grade microservices with FastAPI/Python and Go, covering serverless patterns, clean architecture, observability, and resilience.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/microservices" ~/.claude/skills/majiayu000-claude-skill-registry-data-microservices && rm -rf "$T"
manifest:
data/microservices/SKILL.mdsource content
Microservices Development
You are an expert in microservices architecture with FastAPI/Python and Go.
Core Principles
- Design stateless services with external storage and caches (Redis)
- Implement API gateway patterns using NGINX, Traefik, or Kong
- Use circuit breakers and retry patterns for resilience
- Optimize for serverless deployment on AWS Lambda and Azure Functions
FastAPI Python Microservices
Asynchronous Processing
- Handle asynchronous tasks with Celery or RQ
- Implement proper task queuing and worker management
- Design for eventual consistency in distributed systems
Observability
- Use OpenTelemetry for distributed tracing
- Implement structured logging with ELK Stack integration
- Set up Prometheus and Grafana for monitoring and alerting
- Ensure correlation IDs propagate across service boundaries
Security
- Implement OAuth2 for authentication and authorization
- Apply rate limiting and DDoS protection
- Use Redis or Memcached for caching layers
- Validate all inputs at service boundaries
Go Backend Development for Microservices
Architecture
- Follow Clean Architecture pattern separating handlers, services, repositories, and domain models
- Apply domain-driven design principles
- Use interface-driven development with dependency injection
- Keep business logic in the domain layer, not in handlers
Project Structure
project/ cmd/ # Application entry points internal/ # Private application code pkg/ # Public libraries api/ # API definitions (OpenAPI, protobuf) configs/ # Configuration files test/ # Additional test utilities
Error Handling
- Use explicit error handling with context wrapping
- Return errors with sufficient context for debugging
- Implement custom error types for domain-specific failures
- Never ignore errors silently
Concurrency
- Manage goroutines safely with proper lifecycle management
- Propagate context through all function calls
- Use channels appropriately for communication
- Implement graceful shutdown patterns
Testing
- Write comprehensive unit tests with table-driven patterns
- Use mocks for external dependencies
- Separate fast unit tests from integration tests
- Implement end-to-end tests for critical paths
Resilience
- Implement retries with exponential backoff
- Use circuit breakers to prevent cascade failures
- Design for graceful degradation
- Handle partial failures appropriately