Before 2008, I had been using SQL for approximately 8 years. During that time, I became a tech lead at a large multinational corporation responsible for overseeing a popular news publication. The website stored all its data in SQL, and because the data was highly interconnected, it involved a lot of complex joins. Unfortunately, over time, the practice of properly indexing the data had been neglected, leading to painfully slow response times. This issue persisted despite the fact that the dataset wasn't exceptionally large, containing around 100,000 records.
To address this problem, I had to undertake a significant effort to optimize the database performance.
After improving the performance, I moved on to start a game engine company. There, I developed a browser-based game engine bundled with a backend for managing players and community assets. It quickly became apparent that SQL wasn't suitable for handling high-intensity games. After some research, I discovered Cassandra DB, which was one of the first open-source NoSQL databases.
Programming for NoSQL was different from SQL. No joins were possible, so you had to prepare and store the data in a single document, enabling lightning-fast lookups. It required an initial investment of effort, but it proved effective.
Since then, I've exclusively worked with NoSQL databases. The most significant project I used it on was a game with 50 million downloads and over 10,000 concurrent users at its peak, and the database never experienced issues.
At Superthread, a Project Management Software with tasks and documents, we made the deliberate choice to build a fully NoSQL microservice architecture from the outset. Although it took a bit longer to set up, it resulted in a highly scalable system. This means that whether you have 10 or 10 million records, the system's speed remains consistent.
You can also watch a video version of this article:
Superthread is an all-in-one project management and wiki app for small teams. It has projects, tasks, and docs integrated in one unified tool. Designed for cross-functional companies where engineers, product, design, marketing, and operations can work together.