Missing Backend Services for Mobile
Jesper Richter-Reichhelm, Head of Engineering at Wooga, spoke at GOTO Amsterdam 2014 about unexpected difficulties to find commoditized back end services that suited Wooga's mobile games needs. Combining reasonable cost, integration with an existing tool chain and transparent access to data proved impossible more often than not, leading to in-house development of said services.
Jesper focused in particular on 3 back end services common to many mobile apps: user data persistence, AB testing analytics and error handling.
In terms of data persistence, Wooga’s requirements to support multi-device user data and multi-environment (CI, test, prod) were not supported by Parse and although Kinvey did the cost for a 40 million user base was too high. Wooga decided to develop their own key-value store using ETags, as well as configuration and authorization services.
Omniata provided a rich feature set for data analytics and A/B testing but the lack of integration with existing tools at Wooga and no deep access to data such as which users received a particular configuration of the app proved too strong obstacles for adoption. Wooga has been developing their own tools for analytics, dashboards and reporting since its early stages.
For error handling HockeyApp lacked information on exceptions and under which conditions the errors happened. Crittercism’s larger feature set was a better fit but the cost was extremely high for a user base of millions. It still lacked support for segmentation (for e.g. comparing if a newer version in A/B testing had more crash reports than an older version) and normalization (for e.g. percentage of users affected by a given error). Wooga included both in their custom made real time error handling tools.
With a growing number of generic backend services at hand, Wooga decided to create a dedicated mobile back end services team following the Amazon model (team provides a simple REST API to its services, game developers are responsible for analyzing results). Developing and maintaining this kind of services in house was imposed by the lack of suitable external options, Jesper highlighted. He exemplified with the use of other services like New Relic for web site monitoring, Github and Travis CI for development, among others.
Jesper mentioned that Wooga is considering open sourcing their backend services next year.