# Microservices gone wrong Anthony Ferrara https://docs.google.com/presentation/d/1Ogejf47b7k0RWU-7lE_uBsCmJxL3CvydOl8fVukuQ_4/edit - starting from scratch api gateway middleware for external requests message-bus rabbitMQ Service per domain entity Meta service using ES Kurbenetes Why local dev failed? Slow. Inconsistent Would break mainly: "Someone elses problem" - all devs Production release took 1 week Cost of context switching Smoke Test - Lessons Learned - service call's are unreliable - "microlyth" 1. Don't do micorservices a. unless you have a dedicated tooling and automation team 2. Start with big services a/ Split if you require 3. Automate everything a spin up, deployment migration, backup state restoration Elliptic 4. Don't plan for failure, live it a. failure modes should rebuilt first, tested first, and relied upon 5. Define SLO early a. Define business objectives for each service and system before building