This document discusses the differences between service-oriented architecture (SOA) and microservices. It provides background on SOA and outlines some of its common characteristics, such as an emphasis on reuse, integration, and static design. Microservices are presented as taking a different approach, prioritizing managing change, composition over integration, and dynamic design. The document cautions against some anti-patterns that can emerge from an overly strict SOA approach, such as the distributed monolith and overreliance on enterprise service buses. It recommends that with microservices, domains and boundaries should drive design, canonical data models should be replaced with data views, metadata should be normalized and separated, and tools should be chosen pragmatically.