IDEALS Core principles of microservice design: Interface segregation Deployability (is on you) Event-driven Availability over consistency Loose coupling Single responsibility