I did contract work for Under Armour and their setup used microservices for everything (facet search, tax calculation, shipping calculation, cart, checkout, user data, etc). They used Docker and Kubernetes for nodejs apps for each service, and gRPC/protobuf for communication, and Kafka for message queuing. It was a good setup, since one service going down didn't take down the whole app. I remember facet search went down (it was ElasticSearch and something in the index broke). You could still browse and add to cart, checkout and most users probably didn't even notice unless they wanted to search by material or color. Similarly shipping calculation broke once but it had a fallback so that when the service was down instead of hitting the shipping partner API and returning the actual shipping cost (e.g. $5.65) it would return a sensible estimate (e.g. $6). Almost every service was set up so that if the service was down temporarily, messages were queued and processed later.