Split Database Performance Solution
Segregation/separation of master databases for different functional areas of the any complex application; where you may have single master performance issue.
Like Order Management System (OMS), Product Management System (PMS), User Management System (UMS), Messaging system etc
for Sales, Checkout and others etc.

Solution :

  • Command Query Responsibility Segregation (CQRS)
  • or Service Oriented Architecture (SOA)
  • or Microservices
  • or SaaS (Software as a Service)

What is Command Query Responsibility Segregation?
https://culttt.com/2015/01/14/command-query-responsibility-segregation-cqrs/

Command Query Responsibility Segregation (CQRS) is an architectural pattern that separates reading and writing into two different models.

This means that every method should either be a Command that performs an action or a Query that returns data. A Command cannot return data and a Query cannot change the data.

How is Command Query Responsibility Segregation implemented?
When implementing Command Query Responsibility Segregation you will typically see many of the same patterns. The following are four of the common aspects of the implementation of Command Query Responsibility Segregation.

  • Task-Based User Interface
  • Command Processing
  • Synchronous or Asynchronous tasks
  • Domain Events


Best example where Command Query Responsibility Segregation (CQRS) used is Magento.
Magento is an open-source e-commerce platform written in PHP.
https://magento.com/

Magento 2.3 technology stack requirements
https://devdocs.magento.com/guides/v2.3/install-gde/system-requirements-tech.html

Magento Commerce uses Three master databases

These master databases provide scalability advantages for different functional areas of the Magento application such as checkout, orders, and all remaining Magento2 application tables.

Split database performance solution (Magento Commerce)
https://devdocs.magento.com/guides/v2.3/config-guide/multi-master/multi-master.html

Magento Commerce uses three master databases and a configurable number of slave databases for replication. Magento Commerce has a single interface for database connections, resulting in faster performance and better scalability.

The split database requires you to set up three MySQL master databases on any host (all three on the Magento server, each database on a separate server, and so on).

Read more here

https://microservices.io/patterns/data/cqrs.html
https://docs.microsoft.com/en-us/azure/architecture/patterns/cqrs
https://martinfowler.com/bliki/CQRS.html
https://en.wikipedia.org/wiki/Command–query_separation
https://martinfowler.com/bliki/CommandQuerySeparation.html
http://cqrsjourney.github.io/

also must read

https://culttt.com/2014/09/22/implementing-domain-events/
https://culttt.com/2014/11/03/creating-domain-event-dispatcher/

 

 

Other solution is Service Oriented Architecture (SOA):

What is Service Oriented Architecture?
https://medium.com/@SoftwareDevelopmentCommunity/what-is-service-oriented-architecture-fa894d11a7ec
https://culttt.com/2015/01/07/service-oriented-architecture/

Service Oriented Architecture is where you have separate services providing functionality to other applications via an open interface.

Each service is a self-contained unit of functionality that provides a common process to be consumed by other applications or areas of the Organisation.

Each individual application is a closed box where the internal implementation of the functionality is hidden from the outside world.

Any other application can interact with the service via a common interface.

Service-oriented architecture (SOA) is a style of software design where services are provided to the other components by application components, through a communication protocol over a network. The basic principles of service-oriented architecture are independent of vendors, products and technologies.

Basic differences between the Monolithic architecture, SOA, and Microservices

 

Why Service-Oriented Architecture Is Important

 

Differences Between Service-Oriented Architecture and Microservices

https://en.wikipedia.org/wiki/Service-oriented_architecture

https://www.quora.com/What-is-the-difference-between-SOA-and-microservices

https://www.geeksforgeeks.org/service-oriented-architecture/
https://searchmicroservices.techtarget.com/definition/service-oriented-architecture-SOA
https://searchmicroservices.techtarget.com/definition/microservices
https://www.guru99.com/soa-principles.html
https://www.javaworld.com/article/2071889/what-is-service-oriented-architecture.html

https://www.oracle.com/technical-resources/articles/middleware/soa-ind-soa-cloud.html