
The internship focused on two main projects currently being developed or planned by PT Teleakses Solusindo, also known as Tel-Access. The first project is an audit trail system, designed to record, store, display, and filter activity and logs generated by other systems. This application aims to assist in error detection and monitor the performance of other applications or systems.
Machine Audit Trail is a system responsible for receiving traces/logging sent by other systems to store the history of operations performed by other components and assist in locating faults/errors when they occur. This system consists of:
1. A front-end using Vue JS, Tel-Access's preferred front-end framework, to help administrators display and filter logs, manage API keys, and manage systems connected to the audit trail system.
2. A back-end using Golang with a monolithic modular architecture.
3. A database implemented with PostgreSQL to ensure efficient data storage and retrieval.
The audit trail system, capable of receiving 10,000 logs per second for the company's system logging needs, uses Golang, MySQL, and VueJS with a modular, monolithic approach. This system is a high-throughput online OLTP transaction processing system that must record all incoming audit trails from systems managed by Tel-Access. Therefore, during the development of this system, we encountered challenges because requests were constantly dropped due to request timeouts. Initially we are using GoFiber and GORM as the ORM to make the development easier. But to our surprises, ORM and Go backend framework make the system much heavier.
To address this, we refactored the whole system to use plain Go native's HTTP/Net processing library, we implemented batch processing and message queuing using RabbitMQ. This way, all requests would be collected by RabbitMQ and inserted into the database in batches to avoid overloading database connections. To perform load testing, we use Locust and monitor and search for bottlenecks using Prometheus.
We also used Docker to deploy this system within the company's internal network. However, because we hadn't yet learned about container orchestration like Kubernetes at the time, and because we were limited by time due to other projects, we didn't have time to implement and learn container orchestration.
The second project is the Secure Bundling System (SBS), an application designed to manage Bundling Packages, a program owned by PT Indosat Tbk that allows users to purchase specific data packages when purchasing mobile devices. The SBS application allows PT Indosat Tbk to efficiently and easily monitor the programs they launch.
The Indosat Secure Bundling System is a system used by Indosat to record package bundling. Originally built using PHP, Tel-Access has now updated the system from scratch to provide a more modern interface and more maintainable and scalable business logic. My team and I were involved and contributed to the analysis, development, and migration process of PT Indosat Ooredoo Hutchson's package bundling system, from the old monolithic PHP-based system to a frontend-backend-based system using VueJS and Golang (with GorillaMux). In this project, I was involved in creating the frontend using a repository already under development by a senior developer, as well as building the entire backend from scratch, including implementing several key modules and services such as transaction recording, creating and managing internet bundling packages and smartphone models.




