With apologies to McIlroy, Pinson, and Tague.
A number of maxims have gained currency among the builders and users of microservices to explain and promote their characteristic style:
(i) Make each microservice do one thing well. To do a new job, build afresh rather than complicate old microservices by adding new features.
(ii) Expect the output of every microservice to become the input to another, as yet unknown, microservice. Don't clutter output with extraneous information. Avoid strongly-typed or binary input formats. Don't insist on object trees as input.
(iii) Design and build microservices to be created and deployed early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them.
(iv) Use testing and deployment tooling (in preference to manual efforts) to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them.