This article represents top 8 areas to consider when you are going to review an application architecture. Please feel free to comment/suggest if I missed to mention one or more important points. Also, sorry for the typos.
- Hardware and Operating System: Following areas need to be reviewed:
- Hardware and operating system choices
- Financial analysis
- Processes for evaluating hardware and operating system
- System capabilities involved in high-frequency, high volume data transfers
- Software Services and Middleware: Following areas need to be covered:
- Coding standards
- Data structures
- Architecture layers
- Design patterns (stateful vs stateless)
- Design for change
- Communication protocols
- Code review processes
- Unit testing
- Applications
- Infrastructure: In case, the applications are infrastructure applications, one must examine if the functionaility provided is unique and not met by one or more of the standard products.
- Business: As like above, one must validate the functionaility provided are unique enough.
- Integration Approach: Integration touch-points and techniques are reviewed.
- Information Management
- Data values: Business processes/actions around data management (creation, update, delete)
- Data Definition: Data model definitions, data modeling
- Data security
- Hosting, Data types, and sharing: Which DBMS and why?
- Common services: Standardized distributed data management services (consistency checks, data edits, validation, encryption etc).
- Access methods
- Security: Following key areas need to be reviewed:
- Authentication: Process flow of user authentication with the application
- Authorization: Process flow in relation with how users access the application and associated data.
- Access controls including external access considerations
- Audit trails, Audit logs
- Data security (Data at rest, Data in motion): How data is protected in rest (sitting in database) and in motion is reviewed.
- System Management: Following areas are covered as part of system management review:
- Software configuration management
- System administration
- Monitoring
- System audit logs
- Overall Architecture
- General: Areas such as following needs to be reviewed:
- Integration touchpoints
- Computing resources requirements
- Programming languages
- Performance requirements (User requests volume, stress test techniques etc)
- Client-server architecture
- Client: Following areas need to be reviewed:
- Look & feel consistency
- Whether functions other than presentation is performed on UI side
- Screen-to-screen user navigation
- Async and sync coomunication support from the client
- Local data storage
- Application server: Areas such as dedicated vs shared server need to be investigated. Dependencies with other applications on same application server need to be examined.
- Data server: Areas such as dedicated vs shared data server need to be investigated.
- General: Areas such as following needs to be reviewed:
- Methods & Tools: It is mostly focused around reviewing the processes laid down for SDLC governance. Following areas need to be reviewed:
- Processes used to manage different part of the projects
- Documentation around processes
- Team awareness of these processes
- Tools in place to support the processes
- Issues management and related processes
- Metrics to review the processes
- Process improvement metrics
Latest posts by Ajitesh Kumar (see all)
- Agentic Reasoning Design Patterns in AI: Examples - October 18, 2024
- LLMs for Adaptive Learning & Personalized Education - October 8, 2024
- Sparse Mixture of Experts (MoE) Models: Examples - October 6, 2024
I found it very helpful. However the differences are not too understandable for me