A design pattern in software development where services communicate over a network to provide functionality.