Story of Mongoclient
In this post I want to share the story of Mongoclient. The story started summer 2013 in Bremthal/Germany at pribas GmbH. At that time I recently was promoted to Head of Development. As it was always and always will be, after a promotion the first step which one will do is to destroy the “monument” of his predecessors — of course that is a dumb joke (I admit, there is a bit of truth in the old joke ;-) ). This “monument” was an inhouse developed application server technology (heavily summarized something like OSGI). We, a team of 5 young, extremely motivated and committed developers worked on this technology several years and at that time it was a smart piece of software. We had several and still have some installations of this application server in action. To keep it short here, the main reason why I decided to get rid of this application server technology was the monolithic character. I don’t want to list the characteristics of monolithic applications here and it is also the wrong post to discuss the pros and cons of monolithic applications. Because of the known problems of monolithic applications I decided to switch to another architectural style - microservices.
Until this point of time we only used relational databases — namely MySQL and Oracle Database. In my opinion these databases were not suitable for microservices as I imagined them. So I started looking around for a database which was easy in installation, usage and also performant. I ended up with MongoDB. Nowadays it is the defacto standard NoSQL database and the most suitable database for microservices in my opinion — to make this very clear — at that time it was not so obvious to use MongoDB. There were a lot of alternatives, but for me it was the most suitable. Maybe it was its “schema less” characteristic. My evaluation was very simple, a small Spring app writing millions of Java objects into a MongoDB and then reading them out. It took about ~ 20 min. to install and write the code … it was super fast and easy. Since that benchmark-test ;-) we are on MongoDB.
Beginning 2014 I started the microservice development in our subsidiary company in Antalya/Turkey. There the young and very talented developer Sercan Özdemir joined my team. We developed together with some other smart guys our first microservices. It was and is, mostly the same architecture: Spring-boot app, MongoDB and communication via HTTP/JSON. At the beginning of this new era, our attention was mainly on the lightweight microservice architecture, but after we had established a common development capability, mindset and skillset the missing of a reasonable free MongoDB administration tool came to light.
There was no reasonable free MongoDB administration tool which had:
- a modern user interface
- capability to deploy on web
- supporting the newest MongoDB features
- easy to use
- etc. etc.
We tried nearly every tool whether free or pay, nothing has convinced us. For me that was really not understandable why there was no usable MongoDB administration tool on the market, since it was clear that MongoDB would be the “one” NoSQL database for the majority of all developers.
With all that in mind Sercan Özdemir started an open-source project on github which goal was to address all the listed points above. He started this open-source project on his own — I can’t gratulate him enough to have the guts to start this awesome open-source project on github. I warmly recommend you to have a look at the mongoclient-repository.
Sercan developed the first version as I was in our Germany office. I didn’t have a clue about that he was implementing Mongoclient. He told me the first time about Mongoclient at lunch after I returned from Germany. My first reaction was “hey cool, will be great for your career”. After some weeks working on our normal job, I was fighting with MongoDB queries on the console, as Sercan told me to do it on his workstation. He had installed Mongoclient on his workstations and typed the corresponding query with ease and the result was displayed in a JSON editor. I was impressed, but I thought “OK cool, but Robomongo can do the same”. The only thing to matter was, that Mongoclient had a really nice usability and design. I personally never liked Robomongo’s UI. As Sercan showed me Mongoclient live in action, I didn’t realize that it was a Web-App. The same day I had some other database issues, I’m not quite sure, but I think I wanted to a query and project (https://docs.mongodb.com/manual/tutorial/project-fields-from-query-results/) the result. I joked to Sercan, “Hey I need to do some projection, is your Mongoclient able to do that”, he answered “of course” and send me a link. I opened the link and I was really surprised as I had Mongoclient on my screen. It was “hosted” on Sercan’s workstation — Mongoclient was a Web-App. “Hey cool, Mongoclient is a Web-App that’s great” I shouted to him. The answer was “no it’s a Web-App and a Desktop-App” with a smile on his face — at that time I realized that Mongoclient was another kind of App and it will be the future of the MongoDB administration tools (technically it is an Electron app).
From that on I have been following Mongoclient. Over the time Mongoclient has taken his place on the Admin-UIs page of MongoDB. Has over 1700 Github-Stars. More than 100k downloads on Github and about 350k docker pulls. These figures are amazing and we are getting more popular every day. We also get extremely motivating Feedback from our users and we always try to improve Mongoclient with the community Feedback.
I joined Mongoclient as Co-Founder at the beginning of 2017. Sercan has done and still is doing an awesome job as Main-Developer. After the release of Mongoclient 2.0.0 we decided to be more “professional” — we updated our homepage, we are answering questions, helping other people with any Mongoclient and MongoDB issues and we hired a part-time developer. Currently we are working on Mongoclient as a side-project since it will stay free and open-source community support is welcome (we are also waiting for your donations ;-) ).
For us the future looks very confident. Currently there is only one serious rival on the market — Studio 3T. This guy's have also done a great job, but there are some fundamental differences between Studio 3T and Mongoclient. Mongoclient is out of the box a Cross-Platform Desktop-App and at the same time it is a Web-App. Only this capability is a major advantage to all other MongoDB administration tools.
So stay in touch with us — Mongoclient will stay awesome and we are planning some great new features — for example what do you think about a “MongoDB sharding setup wizard” or “query saving and sharing between your colleagues”.
We are always happy to hear from you.