adoption implemention redundant highly available language-agnostic application programming interface (API) track services consuming healthy analytics monitoring logging collaborating chaotic workday pattern business logic small single-purpose services contrast traditional method monolithic services absolutely better or worse Forced Separation of Concerns tempted share state spaghetti code tangled, complex downstream service Natural Team Ownership ramp-up Frequent Deployments continuous integration testing business decision Heterogeneous Selection of Languages Organization Buy-In Heed these tips
There are only two hard things in computer science: cache invalidation and naming things. --Phil Karlton