I'm still quite early in my career, only at my second SW Dev job. My previous position was a monolith app with arguably poor design resulting in large parts of the app being very tightly coupled when they shouldn't be. Obviously this make testing some parts of the app very difficult and of course those were the critical parts of them app (our integration test suite took over 24 hours to run at one point).<p>When I joined my current company they were in the process of breaking down their monolith into micro services which based on my work at my previous position seemed like a much better alternative. After some time here I feel like I'm unsure whether or not micro services are as amazing as they need to be but I'm currently chalking it up to my inexperience with them. It seems like there needs to be a balance of making sure that each service has a limited responsibility while also not having services too interdependent.<p>So basically I would like to learn more about good design practices and pitfalls to avoid. What resources have you guys used to learn more about micro services?