// STUDI KASUS // HIBURAN
Platform Tiket Bioskop dengan Microservices Go
Reference build internal kami untuk platform tiket bioskop: microservices Go dengan gRPC dan event messaging, penguncian kursi, pembayaran online, e-ticket, serta aplikasi web dan mobile.
Industri Hiburan
Jenis proyek Produk internal
Tech Stack Go (Fiber, gRPC), RabbitMQ, PostgreSQL, Redis, Midtrans, Vue + Vite, Flutter
// Hasil
- Kursi dikunci secara atomik selama checkout sehingga dua pembeli tidak bisa mengambil kursi yang sama
- Booking, pembayaran, dan penerbitan tiket dikoordinasikan sebagai saga lintas layanan
- Notifikasi real-time dikirim ke aplikasi melalui WebSocket
Mengapa Kami Membangunnya
Sistem tiket adalah cara ringkas untuk menguji bagian tersulit dari sistem transaksional: permintaan bersamaan atas kursi yang sama, pembayaran yang bisa gagal di tengah jalan, dan beberapa layanan yang harus sepakat atas hasil akhirnya. Kami membangun platform ini sebagai acuan internal tentang cara kami menyusun backend microservices beserta aplikasinya.
Fiturnya
- Layanan untuk pengguna, film dan jadwal tayang, booking, pembayaran, promo (kode promo), dan notifikasi, yang berkomunikasi melalui gRPC dengan circuit breaker pada panggilan antarlayanan.
- Saga booking yang mengunci kursi, memproses pembayaran, dan menerbitkan tiket sebagai satu alur terkoordinasi, serta melepas kursi jika salah satu langkah gagal.
- Penguncian kursi di Redis dengan skrip Lua atomik dan batas waktu, sehingga checkout yang ditinggalkan otomatis melepaskan kursinya.
- Pembayaran online melalui Midtrans, e-ticket PDF, dan event RabbitMQ dengan dead-letter queue yang memasok layanan notifikasi untuk mengirim pembaruan melalui WebSocket.
- Aplikasi: web Vue + Vite dengan end-to-end test Playwright, serta aplikasi Flutter responsif untuk mobile, tablet, dan desktop.
Arsitektur & Stack
- Go (Fiber untuk HTTP, gRPC antarlayanan), PostgreSQL, Redis, RabbitMQ.
- Payment gateway Midtrans; tiket PDF dibuat di server.
- Web Vue + Vite + Tailwind CSS; aplikasi Flutter (Riverpod, freezed).
- Integration test dengan Testcontainers; Docker Compose untuk lingkungan lokal.
// Tangkapan Layar Sistem
Punya kebutuhan sistem serupa?
Konsultasikan arsitektur dan jadwal pengerjaan langsung dengan engineer kami.
Diskusikan proyek Anda →