I've been spending a lot of time lately studying DDD and thinking about how to modernize one of the larger business applications I work on. One of the textbooks I've been reading shows the implementation of aggregate persistence using JSON documents in RavenDB. However, the author notes that he probably should have used MongoDB.
Given the recent hackathon news and a little bit of tinkering with RavenDB, I decided to look into MongoDB and Azure Cosmos DB. I was extremely surprised to find that MongoDB provides complete online courses and certifications for free! The training material is excellent and hands-on, and gave me a great dive into the introductory material.
First impression, then, is very good. RavenDB was already quite nice as a development database, but the offering from MongoDB is first-class. The free-tier cluster comes with sample data and plenty of horsepower for development. All of the MongoDB products (Charts, Realms, Compass) are available at the free tier, so there's no barriers to start learning.
It's worth mentioning that Azure Cosmos DB supports the MongoDB wire protocol, and can be used to migrate to Cosmos if it makes sense. At the moment, I can see no compelling reason to do so. MongoDB is supported in all North American AWS and Azure regions, so it's easy to locate it next to your application. The tools provided by MongoDB are second to none.
I have a lot to learn before actually implementing any of this. But I feel like it should be reasonably well-received by developers, especially if I can demonstrate the power of the MongoDB tools to them. I think Charts should be a hit with senior management and executives. And I think I've found a way to simplify aggregate persistence without sacrificing database performance.
Top comments (0)