As a Wayfair employee, member of app mobile team, I want to be able to use a micro service.
What it does
It minimizes the data needed from the app, as well as the number of network calls, by combining and filtering data fetched from the backend and make it usable for both of our platforms Android and iOS. We will be able to deploy faster if there is an integration problem between backend and client; we depend less on google play store deploying times for.
How we built it
We developed a kotlin jvm app, that uses ktor for building a small server which handles 1 request from the android app (Tarot home screen). The microservice makes 2 requests to the Wayfair backend service for satisfying the first mentioned request made from the app. Those 2 requests are combined and stripped off unused data and this is sent back to the client.
Challenges we ran into
Developing for the backend with kotlin was a totally new subject for the team, we've hit some road blocks but furtunately the issues were all resolved, supported by the good documentation and team work.
Accomplishments that we’re proud of
Building a running microservice and learning how to work with Kotlin on the backend side. It was also satisfactory to do Mob Programming. There's great potential for reducing the amount of data we send to the client using this approach.
What we learned
Development of Kotlin jvm apps for the backend is similar to writting code for android, we need to get used to the related devops to be more productive on it.
What’s next for Micro Service in Kotlin
Investigate the feasibility of migrating a small part of the app to use a microservice, together with the backend team. We could have as output of this investigation, the KPIs and estimations of improvements (i.e. costs decrease). In the nearest future, the mobile team could consider integrating this service as an alternative for mocking data for integration testing, having the code as a module on the android app's code base.