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
Modernising legacy systems and driving efficiencies through partnership with RPS Under Dev
Explore how NashTech help RPS modernise legacy systems and drive efficiencies through partnership
Modernising legacy systems and driving efficiencies through partnership with RPS
Explore how NashTech help RPS modernise legacy systems and drive efficiencies through partnership
Supporting digital shelf analytics and unlocking eCommerce growth
Explore how NashTech help the digital shelf analytics and unlock growth with a world leading data insights and eCommerce solutions provider.