Architecture Pattern Checklist
Overview of Architect major decisions required, in order.

Summary
- The "architecture pattern funnel" is to help classify which design patterns to use.
- This is a guideline to help consider choices, not a hard rule.
- Type of application: The type of software application being developed or deployed (e.g. web application, mobile app, IoT device, etc.)
- Architectural design style: The overall approach or pattern used to design the system's architecture (e.g. n-tier, microservices, monolithic, event-driven, etc.).
- ⚡️ Important: Design Pattern Heuristics
- Organizational requirements: The specific needs and constraints of the organization developing or using the system (e.g. compliance, scalability, security, etc.)
- Reference Architectures: Predefined architectural patterns or models that can be used as a starting point for designing a new system
- Technology platforms: The underlying infrastructure and tools used to run the system (e.g. cloud, on-premises, containers, etc.)
- Technology choices: The specific technologies and tools selected for use in the system (e.g. programming languages, frameworks, databases, etc.)
- Technology interaction: How the various technologies and components within the system interact and communicate with one another.
1. Type of application
- Which industry?
- Mission critical?
- Real-time?
- Query complexity?
2. Architectural style
- ⚡️Design Pattern Heuristics
- Design Patterns
- Big compute
- Big data
- Event-driven architecture
- Microservices
- N-tier application
- Web-queue-worker
3. Organizational requirements
- Organizational
- Hosting platform, cloud provider
- Service requirements, such as Okta, Sailpoint etc.
4. Reference Architectures
- Candidate reference architecture guides
- AWS Prescriptive Guidance
- AWS Architecture
5. Technology platforms
- source: a good platform guide is Azure guidelines
- Data platform: "volume, velocity, variety, veracity." (Azure docs)
- Application platform: "hosting platform, application dependencies, frameworks, and libraries." (Azure docs)
- Networking platform
- Operational platform
- Security platform
- Health Platform (Reliability)
- DevOps platform
6. Technology choices
- Server, Serverless, Container
- Compute, Storage, Database etc.
7. Technology interaction (AWS planes example)
- Management Plane:
- This is the topmost layer of the AWS architecture, where users interact with the AWS services. The management plane is responsible for creating and configuring all other components of the AWS architecture.
- Control Plane:
- This is the middle layer of the AWS architecture, where all the components are managed and monitored. This layer is responsible for providing secure access to the AWS resources and services.
- Data Plane:
- This is the bottom layer of the AWS architecture, where data is actually stored and processed. This layer is responsible for providing the actual physical resources such as compute, storage, and networking.
- Security Plane:
- This is the layer of the AWS architecture responsible for ensuring the security of the cloud infrastructure and services. It is responsible for providing secure access to the AWS resources and services, as well as controlling which resources can be accessed by users.
- Application Plane:
- This is the layer of the AWS architecture responsible for providing the application platform that users can use to build and deploy their applications. This layer is responsible for provisioning resources, monitoring performance, and managing the applications.