Many of us, who designed and developed systems from scratch, were in situations where you had to make tough decisions about the architecture of the project. Where would you, or would you, draw a line when taking the "next step" in building an architecturally sound and scalable system?
I built a large-scale website that was pretty compensated in terms of architecture. There was a web layer with an interface, and then a business and data layers that handled the real work. Different levels of logical separation coexisted on the same physical machine. Physical or even just logical separation could exist through the use of the web services tier / tier. For various reasons, it was not implemented that way. Whether the decision was right or wrong is simply a matter of opinion. I was in other situations when a relatively simplified application was designed from my point of view.
What are some factors you consider when designing an architecture for a new project? Do you have a consistent project that you often use, are you n-tier from the very beginning, or do you evaluate how each project comes in?
Having this experience repeatedly, I often wonder how others in the same position justify and make these considerations. I am sure that we all will have different opinions, but I believe that understanding the thought process that underlies opinions will be useful.
source
share