Microservices: architectural style decomposing application into small, independent services. Characteristics: single responsibility, independently deployable, own data store, communicate via APIs, technology agnostic, decentralized governance. Benefits: scalability, team autonomy, resilience. Challenges: complexity, distributed transactions, testing, monitoring.