I am currently a big fan of the hexagonal architecture which is pretty close to what you describe as far as layering.
https://blog.octo.com/en/hexagonal-architecture-three-princi...
https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-a...
I also advocate for packaging by feature rather than layer (each feature defines its layers)
https://hackernoon.com/package-by-features-not-layers-2d076d...