Database-Centric Vs Tired Architecture

Viewed 46

Consider 3 applications:

  1. One is for a fitness club that has a backend database and offers some services on the website,
  2. another is an e-commerce site, with heavy dependence on Database,
  3. a point of sale application with heavy use of database

I need to choose among tiered architecture and database-centric, as defined in this book. I can't seem to find resources that discuss exact motivations of choosing one over the other, apart from this page, which states:

using stored procedures that run on database servers, as opposed to greater reliance on logic running in middle-tier application servers in a multi-tier architecture. The extent to which business logic should be placed at the back-end versus another tier is a subject of ongoing debate. For example, Toon Koppelaars presents a detailed analysis of alternative Oracle-based architectures that vary in the placement of business logic, concluding that a database-centric approach has practical advantages from the standpoint of ease of development and maintainability.

It seems to me point of sale should follow database-centric, and fitness center application should follow tiered architecture, but I am not sure about the ecommerce. Any pointers are greatly appreciated.

Tiered architecture

and Database Centric Architecture:

Database Centric Architecture

1 Answers

We can create an application with either of the architecture styles. The selection of the architecture must be done based on the requirements of the system. Here are a few of them :

  • Consistency
  • Availability
  • Amount of data the application would be dealing with
  • Type of data (Structured (tables & rows) / Un-Structured (documents,Media files,sensor data)
  • Amount of traffic the application should withstand
  • Latency per request

and there are many more to look for as per our application needs.  

As I understand from database-centric style should only be used for applications that heavily rely on the features of the database such as stored procedures, triggers. And any modern-day application such as e-commerce websites etc must not be database-centric. These applications are ever-evolving and need to be highly scalable in nature to appropriately adjust to future demands.

Having said that, it is not written on the stone that we need to use a specific architecture for specific kinds of applications. We need to carefully evaluate the requirements/expectations of users from our applications. Which would provide us with the rightful insights to pick the appropriate architectural style. 

Would like to recommend the following for further reading. 

Related