I have a polyglot database solution that includes the following components:
- a management interface that consists of a web application and a document based database (either rethinkdb or mongo)
- a routing service that is a key/value store database... with a simple REST API that allows CRUD functionality.
The routing database is populated by the management application. My question is this. Should I store the routing information in the management application, as well as the routing service database? or just once?
Arguments for storing data twice:
- possibility of recreating the routing database if something were to happen and we lost it.
- when it comes to creating routing reports, I can ease the burden on the routing service by reporting off of the management application. (the routing service will be used a lot more than the management application)
Cons for storing twice (aside from the obvious one about using more resources)
- can potentially end up with discrepancies between the management database and the routing database. Will need to have a script of some sort to check for these discrepancies from time to time.
I'm not sure what else to add to my pros / cons list. If you have any comments I'm all ears.