A microservice is a software architecture design pattern, in which large complex applications are composed of small, stateless processes. These services are small, highly decoupled and focus on doing a small task.