We are through with the server tech stack migration at Finotes.
For those who don't know what Finotes is (Oh! we have much to do in marketing front), it is a lightweight SDK that when integrated to any #iOS or #Android app, captures bugs and performance issues like memory leak, network call issues, frame rate issues, ANR / App Hang, crashes, screen loading delays and more.
Our backend attracts heavy load (oh yes, the number of bugs that exist in mobile apps is much higher than many think, and we capture and report all of them) and the operations are memory intensive. Our CPU usage is at manageable levels.
Our old stack was #Java + #NodeJS + #AngularJS (old one), where Java was used in core modules, NodeJS for dashboard backend and AngularJS for frontend. And now we use #Rust for core heavy load operations, Java (#SpringBoot) for dashboard backend, and #Angular for frontend. We also moved our RDBMS to a distributed table architecture for efficient insertions.
The reason to choose Rust was to ensure better memory efficiency compared to GC languages. The single owner memory model is a bit of a challenge to code, but the efforts pay off when it comes to memory efficiency. Will write a separate detailed post on how our new Rust based core engine compares with the previous Java based one in memory usage.
Moving from NodeJS to Java Spring Boot was a no-brainer as we wanted a compiled language to deliver licensed enterprise solutions without exposing the code.
Picking Angular for frontend was the most internally debated decision. Old AngularJS was outdated, and we wanted to move to a better and more modern framework. React (more of a library than a framework) vs Angular debates stretched many days. Finally the argument of better maintainability won, and we decided to go with Angular.
If you are a product startup at early stage, and is looking at different tech stack options, or if you are thinking of migrating to a new one, happy to share our learnings and how we reduced the server costs significantly with the new stack. DM me on LinkedIn.
Shared here is a screenshot of our dashboard. BTW this is not the final one, as this is couple of sprints old. In the latest, there are some new capabilities that we believe will be of much value to not just the developers, but also to the Software Engineering Leadership team. If you are part of the engineering leadership team in a mobile first company, happy to show a demo of the new capabilities. DM me on LinkedIn if you are interested.
Top comments (0)