A microservices architecture breaks a system into small services that each own one capability and can be built, deployed and scaled independently. The appeal is organisational as much as technical: separate teams can own separate services and move without waiting on each other.
The cost is that you have traded the complexity of a large codebase for the complexity of a distributed system — network calls that can fail, data spread across services, and the operational burden of running many things instead of one. Microservices are a good answer to real problems of scale and team size, and a common source of self-inflicted pain when adopted before those problems exist. A well-structured single application ("monolith") is often the right starting point.
Related terms