architectural patterns for distributed systems - Search