Adopting Microservices at Netflix: Lessons for Architectural Design