This document discusses using MongoDB for reporting requirements that could not be met by traditional SQL databases due to constraints around cost and developer skills. Some key points made:
- MongoDB was chosen because it is document-oriented, does not require transactions, and does not need dedicated DBAs, which the organization could not afford.
- Reporting requirements evolved daily, so reporting had to keep up quickly without relying on expensive reporting specialists. Developers handled reporting by using MongoDB's map-reduce functionality, though it was painful.
- Real-time reporting was implemented by creating specific documents to track data and updating them in the background using an existing queue routing framework. This allowed reporting to no longer be disjoint from the application.