Architectural Frame Questions List

J.D. Meier, Alex Homer, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher, Akshay Bogawat

Contents

  • Authentication and Authorization
  • Caching and State
  • Communication
  • Composition
  • Concurrency and Transactions
  • Configuration Management
  • Coupling and Cohesion
  • Data Access
  • Exception Management
  • Logging and Instrumentation
  • User Experience
  • Validation
  • Workflow

Authentication and Authorization

  • What are the approaches for identity store?
  • What authentication mechanism will be used?
  • What are relevant authentication and authorization patterns?
  • How do I decide if I need to implement single sign-on?
  • How do I design frontend single sign-on?
  • How do I design for backend single sign-on?
  • How to I flow identity to backend?
  • What is impersonation and when should I use it?
  • What is delegation and constrained delegation?

Caching and State

  • How do you refresh your cache?
  • How to design effective caching mechanism?
  • What are common architectural pitfalls with caching?
  • Which layers should implement caching?
  • What data should be cached? (presentation, business and data access layers)
  • How to choose a cache be store?
  • How to cache data with different logical scopes?
  • How to cache data on client side?
  • How to cache user specific data?
  • How to decide whether caching data will improve performance?
  • How to manage expiration policy and scavenging mechanism?
  • How do I protect cached data?

Communication

  • How do I structure my application to optimize communication efficiency?
  • How do I protect my communication channels?
  • How do I choose appropriate communication protocol?
  • How to flow identity across layers (tiers)?
  • What are the common architectural pitfalls with communication?
  • How do I structure my application to optimize communication efficiency?
  • How do I protect my communication channels?
  • How do I choose appropriate communication protocol?
  • How to flow identity across layers (tiers)?
  • What are the common architectural pitfalls with communication?
  • What are effective techniques for communication between the tiers?
  • What are effective techniques for exchanging data between the tiers?
  • How to secure communication between the layers?
  • When should I use synchronous communication?
  • When should I use asynchronous communication?

Concurrency and Transactions

  • What are effective transaction management strategies?
  • How do I determine concurrency requirements?
  • What are the common architectural pitfalls with transactions?
  • What’s the right level of granularity of transactions?
  • How do I manage distributed transactions?
  • What are the common architectural pitfalls with concurrency?

Configuration Management

  • How do I manage per app configuration?
  • How do I manage per user configuration?
  • How do I synchronize configuration across distributed environment (solutions)
  • What are the effective configuration management patterns?
  • What are the common architectural pitfalls with configuration?

Coupling and Cohesion

  • How to determine effective layering strategy?
  • What are effective design patterns for coupling and cohesion?
  • How to determine appropriate coupling between components and between layers?
  • What are the common architectural pitfalls with coupling and cohesion?

Data Access

  • How do we pass data through the layers (tiers)?
  • How to design effective data abstraction layer?
  • How to model the data?
  • How to page records?
  • How to design for very large databases?
  • What are the common architectural pitfalls with data access?
  • What is domain-driven architecture?
  • What is a database-driven architecture?
  • How do I choose between domain-driven and database-driven?
  • Which technology should be used to access data store?
  • How to manage database connections?
  • What logic should be implemented in the data helper components?
  • How to handle transactions?
  • How to handle concurrency?
  • How to design for a multi-tenant database?
  • How to choose between in-line SQL and Stored Procedures?

Exception Management

  • How to design effective exception management strategy?
  • What are effective exception management patterns?
  • What are the common architectural pitfalls with exception management?
  • How to design effective exception management strategy?
  • What are effective exception management patterns?
  • What are the common architectural pitfalls with exception management?
  • Whether to design custom exception handling logic?
  • Which layers should implement exception management?
  • How to deal with unhandled exceptions?
  • How to display exception info to users?
  • How to design logging of exception data?
  • How to propagate exceptions through layers?

Layering

  • How to design effective layering strategy?
  • What are effective design patterns for layering?
  • How to separate layers into areas of concerns?
  • How should layers interact?
  • What are the common architectural pitfalls with layering?
  • How to design effective layering strategy?
  • What are effective design patterns for layering?
  • How to separate layers into areas of concerns?
  • How should layers interact?
  • What are the common architectural pitfalls with layering?
  • How do I migrate my existing architecture to layered architecture, for example monolithic to layered architecture, from 2-tier to layered architecture or 3-tier to layered architecture?
  • How should I structure my development teams i.e. group by layers or group by functional modules?
  • How will my solution and project structure look like when using Layered Architecture?

Logging and Instrumentation

  • How to design effective logging and instrumentation strategy?
  • What are effective logging and instrumentation patterns?
  • What are the common architectural pitfalls with logging and instrumentation?
  • How to design effective logging and instrumentation strategy?
  • What are effective logging and instrumentation patterns?
  • What are the common architectural pitfalls with logging and instrumentation?
  • Which layers should implement logging?
  • When do I need a custom logging mechanism?
  • How to make logging configurable?
  • How to secure of logged data?

State Management

  • How to design effective State Management?
  • What are common architectural pitfalls with state management?
  • Which components should be stateful?
  • Which components should be stateless?
  • Where should I store state?
  • What information should be cached?
  • How to manage state in a web farm?
  • How to protect state data?

Structure

  • What are the effective strategies and patterns for structuring the applications?
  • How do I divide the application into sub-system?
  • How do I factor the applications into layers, components and services?
  • How do I factor the application into tiers?
  • What are the common architectural pitfalls with Structuring?
  • What are the effective strategies and patterns for structuring the applications?
  • How do I divide the application into sub-system?
  • How do I factor the applications into layers, components and services?
  • How do I factor the application into tiers?
  • What are the common architectural pitfalls with Structuring?

Validation

  • Where do you perform validation?
  • What do you validate?
  • How to validate business rules?
  • How to protect against malicious data?
  • How to handle data validation exception?
  • What are the common architectural pitfalls with validations?
  • How to design client side validation?
  • How to determine trust boundary for validation?

Workflow

  • What are the different types of workflows? What are the differences between them?
  • What are common workflow scenarios?
  • What are effective workflow patterns?
  • What are effective the tools for designing workflow?
  • What is workflow modeling and how does it help in system design?
  • What are the common pitfalls with using workflows?
  • What is “workflow persistence”?
  • How does workflow communicate with the system?
  • How design for error recovery in a workflow?
  • How do I manage workflow instances?
  • How do I host workflows?

Last edited Oct 16, 2008 at 12:23 AM by prashantbansode, version 2

Comments

sgssergio Jun 29, 2009 at 2:58 PM 
Hi all,
what are the recommended patterns to implement Logging and Intrumentation architecture frame?

Regards