System Design & Architecture – Monolith vs. Microservices, Scalability, High Availability, Design Patterns