Home / Case Studies / OCBC Indonesia Onboarding
Rethinking user onboarding
at OCBC Indonesia.
A journey that was asking too much of the customer
OCBC Indonesia's user onboarding journey had been running on the same core foundation for years. The frontend was Angular. The backend was Java. The architecture was monolithic. It worked, but it was showing its age in ways that mattered to real customers.
The most visible symptom was time. A new customer completing onboarding from start to finish was looking at five minutes or more before they reached an active account state. In a market where every competing app was chasing sub-two-minute flows, that gap was not a minor UX complaint. It was a commercial problem.
Below the surface, the issues ran deeper. Because the onboarding logic sat inside a single application, changing one part of the journey meant touching code that had dependencies across the whole system. Simple things that should have taken days were taking weeks. Releases were cautious and infrequent. When something slowed down or failed in production, diagnosing the cause meant digging through a system where everything was connected to everything else.
OCBC brought PGI in with a clear objective: modernise the onboarding journey completely. Not a patch job. A full rebuild, done the right way.
Break it apart. Rebuild it properly.
PGI's approach was to decompose the monolith into a set of independently deployable microservices, rewrite the backend in Go for performance and simplicity, and replace the Angular frontend with a React application built to OCBC's OneWeb design standards.
- React frontend: The Angular UI was replaced with a React application built on OCBC's OneWeb component library, giving the onboarding flow a consistent look with the rest of OCBC's digital products. Form states, validation flows, and session handling were rebuilt from scratch. The team mapped every screen in the existing journey before writing a single line of new code.
- Go microservices backend: The Java monolith was decomposed into 6 to 10 discrete Go services, each responsible for one stage of the pipeline: identity verification, document handling, account creation, risk checks, notifications, and session management. Each service owns its own domain and data, communicating through well-defined APIs.
- Parallel delivery against a shared contract: Frontend and backend teams ran in parallel against a Swagger API specification written before development started. This locked the interface between both teams early, allowing React and Go teams to move independently without waiting on each other.
- Full observability from day one: Each microservice was wired into OCBC's central monitoring with OpenTelemetry instrumentation providing distributed tracing across the full onboarding flow. When something slowed down in testing, the team could see exactly where in the chain the delay was occurring.
- Structured handover: PGI ran system integration testing internally before handing over to OCBC for user acceptance testing. All defects were tracked in a shared register with agreed resolution SLAs.
A journey that now takes less than two minutes
(from 5 minutes+)
microservices deployed
and deployment
The end-to-end onboarding journey dropped from over five minutes to under two. For a new customer who arrived having already decided they wanted an account, that is the difference between completing the process and abandoning it. Each microservice now scales on its own, and a change to the notification service goes live without touching anything else. Release cycles shortened. The platform OCBC has now is not just faster — it is one they can actually move with.
Technology & capabilities
Working on a similar challenge?
Talk to our digital banking specialists about your platform modernisation programme.