Most applications use relational databases to store their transactional data. The main problem with relational databases is that they can scale horizontally until you plan for other techniques such as sharding and modifying your application accordingly. This sounds like a lot of work.
When it comes to databases, it is better to take preventive care and reduce their load. Using a mix of storage, such as storing user sessions in separate NoSQL databases and storing static content in an object store, helps to offload the master database. It's better to keep the master database node only for writing and updating data and use an additional read replica for all read requests.
Amazon RDS engine provides up to six read replicas for relational databases, and Oracle plugins can live-sync data between two nodes. Read replicas may have milliseconds of delay while syncing with the master node, and you need to plan for that while designing your application. It is recommended to...