Kalium APIs & Backend Rebuilt From the Ground Up
Today we are announcing the third generation of the Kalium APIs and Backend. The new backend has already replaced the old one and existing users should notice no difference or interruption in service. If you do experience new problems, file a detailed bug report, so we can address it right away.
4 Years of Kalium
Kalium turned 4 years old last month 🥳! It has evolved significantly since its inception on its journey to become the beloved, potassium-rich storage for BANANO that it is today.
The APIs & Backend specifically have experienced 3 different variations and generations, including the one that has launched today.
Here’s a brief summary of the history of the (backside) of the Kalium app.
First generation, nano wallet company, python+tornado
The first generation backend was a fork of the nano wallet company server. Which is a very simple service based on the Python Tornado Framework. The server quickly became difficult to maintain as we added new features and expanded functionality. Tornado’s coroutine implementation predates the python native implementation by several years, this resulted in more difficulty during development and a lack of compatibility with third-party libraries. In addition, the server was just generally inefficient and slow.
The second generation, python+aiohttp
After less than a year, it was decided to rewrite the server using aiohttp. This is a much more modern python framework that utilizes the native Python coroutines using the asyncio package. It served our users very well, although it has some occasional hiccups. The primary problem is that Kalium has become incredibly popular over the last few years as more and more monkeys adopt Banano. The app always has active connections and requests all day, every day.
The third generation, GOLang
The new APIs/backend is written in GOLang. A language that is perfectly tailored to the use case that Kalium has, that is highly concurrent and highly performant web services. Aside from a different language, the new server is more robust, it utilizes PostgreSQL for storing some user data such as tokens for push notifications — which solves a major pain point of the old server using Redis to store this data. The Redis data store quickly grew to unmanageable sizes with the number of users we have. In general, all of the engineering choices behind the new backend also lead to easier extensibility and enhancements in the future.
In summary, the new backend is:
- Faster, much faster
- Better tested with a better structure
- Cheaper and more efficient, using fewer system resources by several orders of magnitude
The new backend is a transparent upgrade for users, there is an upcoming v2.4 release of the Kalium app that will be arriving soon, the primary change is the migration to Flutter v3 as well as some material design 3 changes for Android.
What the Fork is Banano?
Banano is a cryptocurrency powered by DAG technology disrupting the meme economy. Banano has feeless and near-instant transactions, free & fair distribution, a highly active community, and active technical development!