Dokumentasi Yomu
Dokumentasi lengkap untuk platform pembelajaran poliglot Yomu — Architecture, layanan, CI/CD, dan panduan pengembangan
Selamat datang di dokumentasi resmi Yomu. Yomu adalah platform pembelajaran poliglot yang dirancang untuk meningkatkan literasi bahasa Indonesia melalui pengalaman membaca dan kuis yang digamifikasi.
Navigasi Cepat
Architecture
Desain sistem, pattern komunikasi, skema database, dan deployment
Java Backend
Backend auth/user Spring Boot 4 dengan sinkronisasi outbox ke Rust
Rust Backend
Engine gamifikasi Axum — klan, papan peringkat, pencapaian
Frontend
Next.js 16 dengan pattern BFF, shadcn/ui, dan Google OAuth
CI/CD Pipeline
Workflow GitHub Actions di ketiga subproyek
Keputusan Desain
Pilihan teknologi, analisis trade-off, dan pattern desain
Panduan Pengembangan
Instruksi setup, konfigurasi Docker, dan alur pengujian
Glosarium
Daftar istilah teknis dan domain-specific yang digunakan di Yomu
Architecture Sekilas
Prinsip Utama
No Shared State
Java dan Rust masing-masing memiliki database sendiri. Tidak ada query lintas database — semua pertukaran data melalui REST API atau gRPC.
Fault Tolerance
Jika engine Rust mati, operasi Java (registrasi, pengiriman kuis) tetap berhasil. Sinkronisasi yang gagal diantrekan dan dicoba ulang.
BFF Pattern
Frontend Next.js tidak pernah memanggil backend secara langsung. Semua panggilan API mengalir melalui route handler sisi server yang mengelola cookie autentikasi.
Tech Stack
| Lapisan | Teknologi | Versi |
|---|---|---|
| Frontend | Next.js + React | 16 / 19 |
| Java Backend | Spring Boot | 4.0.2 / Java 21 |
| Rust Backend | Axum | 0.8.8 / Rust 2024 |
| Database | PostgreSQL + Redis | 18 / 8 |
| CI/CD | GitHub Actions | — |
| Monitoring | Prometheus + Grafana + OpenTelemetry + Sentry + k6 | — |
| Deployment | AWS EC2 + GHCR + Blue-Green | — |