Data Flow
-
Admin Client (Nuxt.js) berkomunikasi dengan Main Backend (Admin) melalui RESTful APIs, memungkinkan administrator untuk melakukan tugas-tugas seperti manajemen user, pemantauan sistem, dan pembuatan konten. Backend menyimpan data di dalam PostgreSQL database.
-
Assessment Client (Vue 3) berinteraksi dengan Main Backend (Assessment) untuk mengautentikasi user, mengirimkan assessment, dan menampilkan hasil. Client ini juga menggunakan PeerJS untuk komunikasi real-time selama assessment. Backend mengelola data session di Redis dan menyimpan hasil assessment di dalam PostgreSQL database.
-
Storage Service menggunakan gRPC untuk menangani pengunggahan dan modifikasi aset dari Main Backend. Untuk pengambilan aset, Main Backend menggunakan NFS untuk melayani file media kepada klien, memastikan pengiriman file yang efisien baik untuk tugas admin maupun assessment.
-
PeerJS memfasilitasi streaming media peer-to-peer antar klien, sementara TURN Server men-relay trafik media jika koneksi langsung tidak tersedia.
-
Redis digunakan bersama antara kedua backend untuk menangani caching dan manajemen session, mengoptimalkan kinerja sistem.