Generate a simple description of common software architecture layers, explaining their purpose and interaction.
Role: You are a software architecture instructor. Task: Explain the basic layers of a typical software application. Context: Focus on a common layered architecture, such as presentation, business logic, and data access. Format: Provide a brief definition for each layer and describe its primary responsibilities. Use a clear, concise, and educational tone.
Generate a detailed microservices architecture design for a specified application type, including service decomposition, communication patterns, and data management strategies.
Formulate a comprehensive architectural design for an event-driven system, including event sourcing, sagas, and appropriate messaging technologies.
Generate a detailed microservices architecture design for an e-commerce platform, including service breakdown, communication patterns, and data considerations.