This blog was written by Aaron Cox who holds the position of Manager of Software Product Development at DataServ.
Background
DataServ is a SaaS ECM company that provides accounts payable, accounts receivable, and human resources automation solutions to clients worldwide and has been doing so since 1994. Our solutions improve controls, save money, and increase user satisfaction and performance by eliminating paper, automating workflow, and providing instant access to document images, either in our platform or through a client’s Enterprise Resource Planning (ERP) system. All of our document images and data are integrated into our workflow automation solutions, which are accessible by clients on any device through an Internet connection.
Our clients were seeking increased functionality and more flexible options in several key areas:
- A more intuitive user interface, accessible through multiple browsers;
- Increased search capabilities on documents and data stored in our platform;
- A more personally configurable user experience, especially regarding search parameters and displayed results;
- Quicker response time for document image retrieval for clients across the globe, whether from our Software as a Service (SaaS) application or their ERP;
- More cost effective deployment options for our core solutions.
Meeting the needs of the market required us to re-invest in new technology and re-launch our platform. MongoDB was the choice for our new database engine. In 2011, DataServ began the development of a significantly improved SaaS platform that would address the needs of the market while providing a more scalable platform for future growth.
Why MongoDB
DataServ’s workflow automation relies on our ability to quickly and economically acquire unstructured information from various sources (paper, EDI, etc.), transform that information into data and images, and make it available to users around the world. After exploring several options, we chose MongoDB to replace SQL as the database engine for our new platform because MongoDB’s implementation proved superior to other alternatives, given the requirements of our business.
The primary benefits that we've experienced through the use of MongoDB are:
- Dynamic schemas - Among other things, we store metadata for documents that vary in definition between clients. And, within a given client, the metadata varies widely from document type to document type. The flexibility of MongoDB provides us with a simple way for efficiently handling differences in storage structure without having to deal with a rigid schema design.
- Embedded relationships– While there was early concern about leaving the relational database world, some of our data modeling was actually simpler and more effective in MongoDB than it would have been in a RDBMS. A simple example is our storage of header-level and line-level document data, which is stored within a common MongoDB document.
- Embedded images and GridFS– We store binary image data along with document metadata. We have found the GridFS solution to storing and retrieving binary information to be very efficient and easy to develop
- Flexibility– A unique feature of our SaaS platform is the ability for clients to tailor workflow for their business. This tailoring often adds unique data items or process steps outside of our normal solution. In addition, our development cycle follows a minimalist Agile methodology, where we only develop what we need. The flexibility of MongoDB has been a big contributor to enabling the development team to implement behavior changes, with fewer lingering problems than often occur when changing database storage metaphors.
Infrastructure
Below is a graphic illustrating the DataServ/MongoDB infrastructure at the hardware level. Primarily, our usage is from Java application layers that are deployed in J2EE containers. We've used GridFS and Java MongoDB API's to access data in ad-hoc scenarios, and we're using Morphia for Object to Relational support in areas where the data storage and/or translation is more static.
Conclusion
Having made the transition from SQL to MongoDB we can safely say that we made the right choice and that MongoDB has proven to be a significant upgrade for our clients and our internal personnel. It is extremely intuitive, flexible and developer-friendly, and it provides us the ability to scale much more quickly.
If you're looking to migrate yourself, check out this upcoming webinar on Best Practices for Migrating from RDBMS to MongoDB.