Why Do Software Developers Like MongoDB?
by Tina Kennedy, on Jan 9, 2017 1:55:10 PM
Software developers are the "architects" behind all computer programs. They are the creative minds that develop the applications that allow people to do specific tasks on a computer, tablet, smart phone, gaming system, etc. They also develop the underlying systems that run the devices or that control networks.
I recently started a new marketing position for eFlex Systems, a software company that supports manufacturers with lean initiatives. When in meetings with developers, I initially felt like they were speaking a second language that I clearly did not know. Like a toolbox for a builder, there are many tech stack "tools" for developers that may include MongoDB, NodeJS, EmberJS, Hadoop, Linux OS, Zookeeper, etc. As I began to learn more about these tools, some stood out more than others, especially MongoDB. Wanting to learn more I talked to Tony Baker, VP of Engineering to get the lowdown on why developers are embracing MongoDB.
According to Tony, "MongoDB provides an innovative noSQL database used by global brands and the hottest startups alike. It provides us with numerous advantages compared to typical relational databases such as MS SQL and Oracle. Mongo is a thriving open source project with nearly 40,000 commits and 11,000 stars on Github." GitHub is a website and service that is popular with developers. It is a community platform that developers can post their projects and collaborate with the open source community.
Additionally, Mongo also adds a layer of scalability and fault tolerance over traditional database engines. With built in replication, available through Mongo's replica sets, developers can spend time developing features for their end users while utilizing Mongo's robust and well supported infrastructure. Replica sets add fault tolerance and high availability with automatic failover, increased read throughput for reporting from secondary members, while not impacting performance of production critical database writes.
Most importantly, per Tony, "Mongo adds flexibility, improving not only our development productivity, but the productivity of the projects of our manufacturing users. A flexible document based data model doesn't restrict our development to a defined schema. It allows us to avoid awkward to query and performance leeching relational database anti-patterns such as Entity-Attribute-Value."
In the past, eFlex had developed software on Microsoft based architecture. However, over the past few years they have redesigned their core software with open source libraries such as MongoDB running in Linux OS, providing a better lean manufacturing solution for their customers. According to George Jewell, VP of operations at eFlex, "The new platform is much faster, more reliable, web-based, cloud ready, scalable with the ability to store large amounts of Big Data for reporting and process improvement needs." Key advantages of using MongoDB for developers as well as end-users is listed below. There is also a great video link on YouTube that gives an overview of "What is MongoDB".
Advantages for Developers
- Document based data model
- Not stuck to a defined schema (Better match to our constantly evolving data structures in web applications)
- Makes polymorphism easy and accessible
- Not stuck with awkward relational database anti-patterns such as EAV
Scalability and fault tolerance
- Built in replication
- Replica sets add fault tolerance and high availability
- Increased read throughput with secondary members
- Automatic failover
- Open source: almost 40,000 commits and 11,000 stars on github
- Proven technology used by global brands and hot startups (Expedia, MetLife, Bosch, Forbes, etc.)
Advantages for End-User
- Scalable (Can add servers as needed)
- Agile (Faster and more flexible data model)
- Cloud Ready (Complex hardware not necessary)
- Modern Application/Document Oriented (Supports Big Data and reporting)