Building Microservices: Designing Fine-Grained Systems