I will keep it short. I am not going to mention history of microservices like first founded by Sir B. Microservices and then used by company oggole.com and so on.
Just want to share my thoughts and experience of microservices.
My microservices architecture is based on verticals. Disadvantage of this architecture might be decoupling of some microservices but it gives huge advantage of scalability fault tolerance and independence and it will make things easy for deployment without effecting other verticals.
For example think about each web page of a website is a vertical. Amazon.com has similar functionality once you go for check out page you are directed to different server different app. So even though amazon.com is down you can still continue to proceed your order because now different server and app serving you.
Also keep in mind Organization being shaped based on your architecture if you have verticals each verticals means a team if you have layered architecture then you have frontend team you have back end team and so on.
My last point for my microservices is handling devops. Teams should responsible of full life cycle of their product with verticals you separate responsibilities of your product and each team has full control of on it.