Previous proposalBuilding apps and services with UPI: A technical deep dive
What we learnt building BHIM in just 3 weeks
platform helped us to build BHIM & *99# in 3 weeks.
We created BHIM and it’s USSD counterpart *99# in just 3 weeks. This was primarily
because of adoption of pure functional programming techniques and usage of a custom
and had an impact on reducing the overall effort. Functional programming techniques
enabled multiple teams to work in a hyper parallel mode and assemble components in a
robust way in a short timespan. Here we share our learnings.
The requirement to build a p2p payments app on top of UPI. In 3 weeks.
- Started as building the “Reference app for UPI”, which transformed to BHIM.
- The technical requirement - Build highly scalable, secure, stable and universally available p2p payments platform built on top of UPI in record time that will horizontally scale to 200M customers.
Only possible if we
- Hyper parallelize work and identify composable parts
- Write less code. Reuse.
- Rapidly iterate with acceptance testing cycles.
robustness. Learnings Good and Bad:
- Integrated backend for BHIM and *99#
- Usage of FP - monads, pure functions, state and error handling
- Using Monads to sequence flows in JS really improved robustness
- Use of JS - unified code across platforms, achieved small size app <2MB
- Innovation in handling accessibility and multilingual content
- Innovation in managing parallel work & working in shifts.
- The Redux way complicated the frontend for transactional use case.
- Raw metal datacenter deployments need pre-planning. What we missed.
Vimal Kumar is the CEO of JusPay