GoRhino offers loyalty rewards for banks and other corporates in South Africa. The list of partners is to be displayed on mobile app, running on Android and iOS. Our first requirement was to get the current smart phone app completed ready for launch end of April . We found the following constraints with the existing app:
User events would sometimes not get any response and the location of the user nearest partners was often in the middle of the ocean. It was written in Xamarin and C# by a large software development company . The back-end was written by a local company in C# and was running off of a MS SQL database on a single simple local hosting companies server.
At first glance we knew that the current infrastructure would not be able to cater for say 1000+ concurrent users especially during a burst period.
Delving into the Xamarin code we found numerous fundamental issues with the code, and two different code bases used for Ios and Android. We also found out Xamarin development to be sturdy if done right but relatively expensive , cumbersome and not responsive unless a reactive library is used. This was not the case .
We did our due diligence and soon moved over to React Native. During the sampe period, we received new designs from our design agency and got the process started, within about 3 weeks we had a Proof of concept that already responded and ran smoothly. Two weeks later it was tested and ready in the app stores, ready for the first customers.
We met the deadline for version one and our client was able to give this options to its customers.
We also started moving over the back-end and database services to AWS. We moved from a single server MS SQL instance to clustered MySql, giving the database an overhaul as we went. We can scale our databases when load starts getting too high. We also deployed our APIs to Elastic Beanstalk and can scale those servers at load as well.
For the monitoring part of the app, we have an ElasticSearch cluster which monitors all requests coming into the app, along with app registrations so at any point in the day we can see exactly what is happening.
Doing preliminary tests we could reach 1000+ simultaneous users at any point in the day without much frustration or speed degradation.
A screenshots of the application can be found below. The GoRhino App is also in the app store under GoRhino for IOS and Gorhino Rewards for Android.