How do you design for horizontal scaling versus vertical scaling in a distributed system for Mphasis engagements?