We can apply good old-fashioned ideas of three-tier architecture to individual microservices. Some of the benefits are:
good separation of concerns
clear test boundaries
most of our tests can be more simple.
I want to write about this. For now, here are some references:
PresentationDomainDataLayering (article by Martin Fowler)
Hexagonal Architecture (article by Alistair Cockburn)
Perhaps this (not sure yet): Hexagonal Architecture: Scaling Across Multiple Concurrent Teams (article by Cory Foy)
TDD, where did it all go wrong? (great talk by Ian Cooper)
Structuring Clojure Web Applications (article by James Reeves)
three tier web service hexagonal.