Independent Messenger Application Architecture
Now a days, Software Products are going to integrate messaging application with an existing. But i hate monolithic design and Architecture to integrate with an existing one.
We can architect good design of independent application in micro-service based architecture.
We always expect good performance of an application and good message delivery with a high availability. For that I always suggest to use multiple independent database Technology and storage rather then single RDBMS.
Transaction Independent Design:
Each action must be transaction independent with achieving Consistency and Durability. Using Socket Programming we can inter connect users, and conversation message will be stored in our database using message Queue. so, we don't face any over head or performance issue. Even no data loss, because If any message insert failed to insert in NoSQL or RDBMS then Failed message will be pushed to Queue again. In-short we can retries until it succeed.
Load Balancing over Database Request:
We can serve the number of request to the Read Replica of the NoSQL or RDBMS database. Now a days we have fabulous NoSQL database for quick retrieval query. For RDBMS we can use Replication concept to Sync all the inter-connected database.
Behind the All scene, We must have good database Design over Cache, NoSQL and RDBMS 😊.
Database is an Engine and Performance is an Accelerator, Let's choose your Ride…
Nice article. Very well explained. Keep it up :)