Applying Microservice Architecture Principles to split large iOS monolith app codebase
Submitted by Venkatesh CM (@venkateshcm) on Wednesday, 10 August 2016
Section: Full talk (40 minutes) Technical level: Advanced
How to develop a single app which hosts equivalent of Ola, PayTM, Swiggy, BookMyShow, UrbanClap ? What are complications and issues to be sorted ? How to structure codebase and architect application ? What can be learned from Microservices architecture experiences ?
The challenge is doing parallel development, on diverse set of products, with 50+ distributed mobile developers across countries. We would like to share how do we try to solve the problems, and talk about some of the measures we are taking to keep the quality high and users happy.
This talk presents architecture and patterns followed by Go-Jek to manage and develop several products. We also talk about challenges of developing and deploying huge app without compromising on isolation, independence and pace of development.
Applying Law of Holes
Organising around Business Capabilities
Componentization via Services
Modular Architecture - VIPER Pattern to help (Separating Responsibilities)
- Application Routing and Module Routing
- State Management across Modules
- Control Flow and Navigation
- Managing dependency across products and modules
- Scaling the products Independently
Product and Feature Toggles
Venkatesh CM is software hacker, developer, architect and machine learning enthusiast with more than 18 years of experience, working in companies such-as Go-Jek, Zwibe, Thoughtworks. He haa worked in teams ranging from 4 developers to 200+ developers, in distributed teams working across development centres and time zones. He has expertise full stack development from android/iOS to services apis to database.
Venkatesh will co-present with Anshuman. Anshuman is an iOS Developer at GO-JEK, primarily working on iOS mobile apps for last two years. He is very passionate on developing iOS apps and eager to explore the mobile development world.