AI for Microservices
5 min read
BackendApi DevGeneral Swe
Backend
AI can scaffold services. Service boundaries and failure contracts are architectural decisions—yours.
Api Dev
Inter-service APIs, versioning, and backwards compatibility need human ownership.
AI for Microservices
TL;DR
- AI can generate service skeletons, API clients, and basic inter-service calls. Implementation is the easy part.
- The hard parts: service boundaries, failure modes, eventual consistency, and orchestration strategy. Those need human design.
- Use AI to accelerate implementation. Own the architecture and the failure model.
Microservices are a design problem before they're a code problem. Where do you draw boundaries? What happens when service A is down? How do you handle distributed transactions? AI can write the code. It can't make those decisions for your context.
What AI Can Generate
- Service stubs. New service with health check, config, logging. Boilerplate, AI nails it.
- API clients. Service A calling Service B. HTTP client, retries, timeouts. AI generates; you tune.
- Message handlers. Kafka/Redis consumer with basic processing. Structure is predictable.
- Docker/K8s manifests. Deployments, services, config maps. AI knows the patterns.
- OpenAPI specs. Contract-first? AI can draft from your description.
What AI Can't Decide
- Service boundaries. Should this be one service or two? Domain-driven design, bounded contexts—that's your call.
- Failure handling. Retry? Circuit breaker? Fallback? Depends on your SLAs and tolerance for inconsistency.
- Data consistency. Saga, 2PC, eventual consistency? Trade-offs depend on your domain.
- Orchestration vs. choreography. Request-response vs. event-driven. AI can implement either; you choose.
- Deployment topology. One service per pod? Sidecars? Resource limits? Org-specific.
The Design-First Approach
- Design the system on paper. Services, contracts, failure modes. No code yet.
- Use AI to scaffold. "Create a Python service with FastAPI that implements this OpenAPI spec." Get the skeleton.
- Implement the hard parts. Retry logic, circuit breakers, idempotency. AI assists; you own.
- Review inter-service contracts. Versioning, backward compatibility. Human responsibility.
Common AI Microservice Mistakes
- Over-fragmentation. AI might suggest a service per table. You need domain boundaries, not CRUD boundaries.
- Naive retries. Infinite retries with no backoff. You add exponential backoff and dead-letter.
- Ignoring partial failure. "What if B succeeds and C fails?" AI often assumes happy path.
- Tight coupling in disguise. Generated clients that don't handle version skew or schema evolution.
Design boundaries. Scaffold each service by hand. Wire clients, retries, circuit breakers. 2+ weeks for a multi-service feature.
Click "Microservices With AI" to see the difference →
# AI might generate: infinite retries, no backoff
for attempt in range(100):
response = call_service_b()
if response.ok:
return response
# You add: exponential backoff, max attempts, dead-letter
retries = Retry(total=3, backoff_factor=2)
response = call_with_retry(call_service_b, retries)
if not response.ok:
dead_letter_queue.send(payload)Quick Check
AI suggested splitting your monolith into 12 services. What should you do?
Do This Next
- Sketch a microservice you've built or maintained. Where are the failure points? What did you learn the hard way? That knowledge is your moat—AI doesn't have it.
- Use AI to scaffold one new service with a clear spec. Note what you had to add (retries, timeouts, error handling). Document those as "must-add" for future AI-generated services.