Overview
Telkomsel MyOrbit is a consumer internet platform that combines customer-facing web and mobile applications with backend services and modem-related workflows. The product serves customers across Indonesia and supports connectivity management without a conventional fixed subscription model.
The problem
The platform needed to coordinate customer accounts, connectivity products, and modem-related operations across multiple client applications. Backend services had to handle complex domain behavior while maintaining clear contracts for web, mobile, and supporting systems.
The solution
The system uses domain-oriented microservices and event-driven communication for backend workflows. Web and mobile clients consume defined API contracts, while supporting data and messaging infrastructure coordinate state across the broader platform.
System architecture
Customer-facing applications interact with domain services that coordinate product, account, and modem-related workflows through synchronous APIs and asynchronous messaging.
- 01Web & mobile clients
- 02API contracts
- 03Domain microservices
- 04Event messaging
- 05Data services
- 06Modem-related workflows
Key capabilities
Cross-platform customer experience
Supports web and mobile applications through shared backend contracts while allowing each client to provide an experience suited to its platform.
Domain-oriented backend services
Separates complex business behavior into service boundaries rather than concentrating it in a single application.
Event-driven coordination
Uses messaging for workflows that need to propagate changes across services and supporting systems.
Production investigation
Testing and root-cause-analysis practices support diagnosis across application, service, data, and integration boundaries.
Engineering decisions
Use domain boundaries for complex business behavior
Domain-Driven Design helps keep product rules close to the services responsible for them. Clear boundaries also make service ownership and change impact easier to reason about.
Use events for cross-service workflows
Not every state change needs to block an interactive request. Event-driven communication allows downstream work to proceed independently while keeping service responsibilities separated.
Define API contracts early
Stable contracts allow web, mobile, and backend work to progress in parallel. Mock APIs can reduce coordination delays before every downstream service is available.
Challenges & trade-offs
Distributed state
Separating services improves ownership but makes consistency, retries, and failure diagnosis more complex than in a single application.
Client coordination
Web and mobile applications evolve at different release speeds, so API compatibility must be considered when backend behavior changes.
Hardware-related workflows
Operations involving customer devices introduce integration and state conditions that do not exist in software-only product flows.
Technology stack
- Backend: Go, Node.js
- Clients: React, React Native
- Data: MySQL, MongoDB, Redis
- Messaging: RabbitMQ
- Infrastructure: Kubernetes
- Architecture: Domain-Driven Design, Event-Driven Architecture
Outcome
The work contributed to a production consumer platform spanning backend services, web, mobile, and modem-related integration. It demonstrates engineering across distributed service boundaries, shared API contracts, asynchronous workflows, and multi-client delivery.
Project status
Professional project. The product is publicly available, while source code, internal architecture details, operational metrics, and customer information remain private.
