Membangun Ekosistem Microservices: Simulator Broker Saham (My Broker B3)
Halo semua! Saya akan memulai seri artikel untuk mendokumentasikan pengembangan My Broker B3, sebuah proyek pribadi yang menerapkan konsep-konsep rekayasa perangkat lunak canggih, sistem terdistribusi, dan messaging untuk mensimulasikan operasi broker saham secara real-time.
Arsitektur Sistem
Proyek ini dirancang menggunakan pendekatan microservices, dengan menggunakan stack hibrida untuk memanfaatkan kelebihan masing-masing ekosistem:
- Core Backend (Java/Spring Boot 3): Bertanggung jawab untuk API order (broker-order-api), wallet (broker-wallet-api), dan manajemen aset (broker-asset-api).
- Market Data (Python): Sebagai integrator (broker-market-data-api) yang mengelola ingestion data pasar melalui tugas terjadwal.
- Matching Engine (Java): Sebagai simulator B3 (b3-matching-engine-api) yang memproses eksekusi order yang dikirim oleh broker.
Alur Data dan Teknologi
Untuk memastikan ketahanan dan skalabilitas, saya mengadopsi strategi komunikasi hibrida:
- Sinkron (REST): Digunakan untuk validasi waktu nyata yang kritis, seperti memverifikasi saldo wallet sebelum mengizinkan order dikirim.
- Asinkron (Event-Driven):
- Apache Kafka: Berfungsi sebagai bus acara internal untuk mendistribusikan kutipan pasar dan acara terkait aset.
- RabbitMQ: Mengelola komunikasi antara Broker dan Simulator B3 melalui antrian khusus.
Persistence dan Caching
Masing-masing layanan menggunakan strategi data yang paling sesuai untuk tujuan spesifiknya:
- MySQL / PostgreSQL: Digunakan untuk data transaksional, order, dan riwayat wallet.
- MongoDB: Digunakan untuk riwayat kutipan pasar (data time-series) dalam Market Data API.
- Redis: Digunakan sebagai cache "hot" untuk harga pasar untuk memastikan kueri ultra-tinggi.
Apa Selanjutnya?
Artikel ini hanya awal. Dalam artikel-artikel berikutnya, saya berencana untuk mendetailkan:
- Infrastruktur: Cara mendeploy semua sumber daya pada AWS (Free Tier).
- Messaging: Penjelasan mendalam tentang konfigurasi Kafka dan RabbitMQ.
- Tantangan Teknis: Cara saya menangani konsistensi akhir dan logika pemrosesan mesin pencocokan.
Silakan tinggalkan umpan balik atau pertanyaan Anda di komentar!



