<aside> 💡 Note: This was a draft. The final version can be found at https://medium.com/@britannio/rama-reviewed-a-breakthrough-paradigm-in-software-engineering-44cb64667133

</aside>

Untitled

Many of the day-to-day software applications that we use can be fully described in a matter of hours. So why does it take months or even years to release and scale these applications?

Twitter was unveiled in 2006. Seven years later they were able to overcome their scaling challenges and mitigate the infamous fail whale. This feat took 1M+ lines of code and 200 person-years.

Threads was developed in 25 person years and this is with the benefit of the infrastructure behind Meta's other products. Can we do better?

Developers should be able to focus on whatever differentiates their application from the rest. Large tech companies invest in this with extensive internal tooling. But what about the rest of us mere mortals?

Can we do better?

Rama is a cutting-edge programming platform for building horizontally scalable back ends in Java or Clojure. Red Planet Labs, Nathan Marz's brainchild company behind Rama, has demonstrated the innovativeness of the platform by building a Mastodon back-end. It is comparable in functionality to early versions of Twitter but with 100x fewer lines of code! Additionally, a live demo was released and load-tested beyond the current scale of Twitter, something that the current Mastodon back end isn't cut out to do. The Rama implementation of Mastodon only took 0.75 person-years to develop!

Rama is still in beta but fortunately, the library API is available so I was able to prototype a back end for an e-vehicle hire system to evaluate it myself. In this article, I provide an overview of how I created this prototype.

Designing an e-vehicle hire platform

After brainstorming a few ideas, I settled on creating a prototype back-end for an e-vehicle hire platform. Users can set up an account, locate nearby vehicles with enough battery, start a ride and end a ride. I have open-sourced this prototype with unit tests at https://github.com/britannio/rama-e-vehicle-hire/tree/main.

Developing a Rama application begins by determining the tasks that the application intends to carry out. In this case, tasks are split into three categories: users, vehicles and rides.

Users

Vehicles

Rides