Skip to main content
All projects
ArchitectureProfessional Work

Telkomsel MyOrbit

A large-scale consumer internet platform connecting web and mobile experiences with modem-management services.

Role
Software Developer
Focus
Go · Node.js · React
Status
Active
Telkomsel MyOrbit interface preview

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.

  1. 01Web & mobile clients
  2. 02API contracts
  3. 03Domain microservices
  4. 04Event messaging
  5. 05Data services
  6. 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.

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.