While designing a complex system some of my colleges came back with the idea of having two separates APIs, one that will perform the writes into de databases and another one that will only do the reads.
I fail to deeply understand why separating those two concerns can be useful for the whole system. It can be useful when the system is for example suffering from heavy traffic when trying to read or viceversa but more than that...
Separating those to concerns also implies more complexity on the system since logic must be separated but in the other hand it can be useful when distributing and scaling the system, eg: having a read only database...
Any light into this darkness is more than welcome.
Thanks,
Javi.