Reactive Product Development
Introduction
NashTech started working to build Spok in Knolway (NashTech software development methodology) rhythm.
About SPOK
Spok is a social content sharing application. A “spok” is content (picture, animated gif, video, sound, URL, raw text, HTML text, poll, riddle, and more to come) that will be published (“spoked”) by a user. Every spoke could thereafter be (or not) re-spoked by other users. Every single user interaction (new spok, re-spok, unspok, comment, etc.) will be stored with detailed space and time information.
When a spok is posted, it becomes an object shared between all the users. The system’s strength is that the spok lives its own life, depending on the other users’ re-spokes. When a spok is deleted (by his creator or by any re-spoker), the spok remains available for all the other spokers. The association between the spok and the spoker is deleted, but the spok continues its life.
The challenge
The application required to store every single user interaction (new spok, re-spok, unspok, comment, …) with detailed space and time information. The purpose was to provide a complete timelined map of these interactions from multiple points of view (for a specific user, for a specific spok, or the overall application).
In Spok app, the architecture is asynchronous, non blocking and highly fault tolerant. Data is sent through web sockets. This is a dual messaging pull and push system that doesn’t require any previous request.
For example, the client UI could be updated without any interaction, from the client to the server, by simply pushing the required data through a specific channel. So Websockets-based pull/push mechanism was heavily utilised to give it the reactive flavor. A major challenge was to design a websocket-based microservice architecture which was done with the help of Akka-HTTP.
On the data model side, there were going to be linkage of every Spoke with Spokers. There are also linkages between Spoker’s following other Spoker’s and doing re-spokes. Another major challenge is to keep performance of every api under 100ms.
The solution
NashTech started working to build Spok in Knolway (NashTech software development methodology) rhythm, which is divided into 4 steps:- Fusion, Architecture Release, Development Release, and Maintain and Enhance. The architecture was based on the Reactive Manifesto and was designed to be asynchronous and non-blocking Api at every level. We used Eventuate to manage event sourcing. We decided to use DSE full stack, so the linkage between data is managed by DSE graph, big data analytics is managed by DSE Analytics, and searching is implemented by DSE Search. The services were distributed as microservices and were made available through REST endpoints. It took around 12 sprints to build this product. Each sprint was followed by a demo and release in the production environment. After building the product, we did the analysis and benchmarking over immense data. Every api is taking under 100ms to respond.
The outcome
For the product, we used the right technology for the right need. This enabled us to build the platform within the stipulated time and with the right quality. We used the DSE stack, web socket-based microservice architecture, and invested in high-quality coding for which we kept a tab through CodeSquad. In just 6 months, Spok is ready to be launched in the market.
Read more case studies
Enhancing both courier and customer experiences for Evri
NashTech and Evri work closely together on the application and systems for the couriers to ensure that they are satisfied and well-trained.
Unified and NashTech: driving digital media excellence
Explore how NashTech helped Unified to overcome challenges in the startup phase by scaling technology resources as needed.
From rising above adversity to riding the wave of digital transformation in the education sector
Explore how NashTech help Trinity College London ride the wave of digital transformation in the education sector
Let's talk about your project
- Topics: