Because platform selection review is mandatory
Rails is an open source web framework build on top of ruby, first released on December 2005. It uses MVC design pattern and emphasize CoC (Convention over Configuration) and DRY (Don’t Repeat Yourself) paradigm. Ruby itself is known as a clear and lean language. So in the ideation phase of this project, when faced with the problem presented to us, we thought that RoR is a suitable solution.
Our project is a web-based application to monitor the progresses of various projects in a company through phabricator. It was clear and concise enough, with relatively low complexity and scale. When thinking about what stack to use, the most obvious solutions are python and ruby. PHP is not very clean and Java is too complex for a project on this scale.
Admittedly, python also have various good web development framework. If we really think deeply about it, I think the trade-off between ruby and python in out project is negligible. That is, there are no major benefit nor hindrance by using one rather than the other. We ended up picking Ruby on Rails because it’s an all-in-one already-working-on-top-of-the-shelf framework. Also, most of the dev in the team chooses ruby because it’s new for us, and we want to learn something new.
In the ideation phase, we also planned to use MongoDB as our DBMS. The consideration is, as all the data are puled from phabricator, there is no need for a relational database in our backend at all. We only need to store some links as plaintext. So to keep it fast and simple, we use MongoDB, a noSQL database that store the data in a JSON-like documents. Perfect for storing texts only.
Between the sprints though, after we re-validate our idea with our client, we choose to change it to PostgreSQL. For the page to load quickly, we need to prefetch the data somewhere first, so we build a somewhat clone of the data needed from phabricator, thus we need a relational database and of cource MongoDB has to be replaced. Postgres is a top choice for us because it’s open-source, most advanced, most reliable, and most feature-rich DBMS out there.