Explain the concept of Microservices. How do you handle inter-service communication and fault tolerance?