▪ Every design decision must be justified by a business requirement.
▪ To avoid over-engineering the application architectures, keep to drive design for business requirement.
▪ Engineers are tend to be over-engineering with latest architecture styles, use latest tools.
▪ It becomes an experimental application that use all latest fancy tools and architectures.
▪ We should clearly define functional and nonfunctional requirements.
▪ Define our limits, constraints and assumptions of the application and define business objectives
clearly.
▪ Start and Grow Application with Metrics
▪ How many Concurrent Users that our application handle ?
▪ What is the target of expected Requests/second Latency ?
▪ What level of application outage is acceptable?
▪ Business requirements drive these design considerations.