Prasyarat Sistem
Kebutuhan sistem, database yang didukung, dan environment yang diperlukan untuk menjalankan RESTForge
Halaman ini mencantumkan kebutuhan minimum dan rekomendasi untuk menjalankan RESTForge dalam berbagai skenario, mulai dari development hingga production enterprise.
Kebutuhan Dasar (Basic Requirements)
| Komponen | Minimum | Rekomendasi |
|---|---|---|
| Runtime | Node.js 22.x LTS | Node.js 22.x LTS atau lebih baru |
| CPU | 1 core | 2+ core untuk cluster mode |
| Memory | 512 MB | 2 GB untuk workload menengah |
| Sistem Operasi | Linux, macOS, atau Windows | Linux untuk production |
Database yang Didukung (Supported Databases)
RESTForge mendukung tiga database dengan status setara. Setiap database mendapat template generator dan dialect adapter tersendiri sehingga SQL yang dihasilkan optimal per database.
| Database | Versi Minimum | Karakteristik |
|---|---|---|
| PostgreSQL | 12+ | Mendukung RETURNING, JSONB, dan fitur lanjutan PostgreSQL |
| MySQL | 8.0+ | INSERT+SELECT pattern untuk return data, charset handling |
| Oracle | 19c+ | UPPERCASE keys, native Date driver, schema awareness |
Pemilihan database dilakukan saat konfigurasi project. Satu instance RESTForge terhubung ke satu database, tetapi beberapa instance dengan database berbeda dapat berjalan secara bersamaan.
Redis (Opsional)
Redis bersifat opsional tetapi direkomendasikan untuk environment production. Tanpa Redis, RESTForge tetap berfungsi untuk operasi CRUD dasar, tetapi fitur-fitur berikut tidak tersedia:
| Fitur | Kebutuhan Redis |
|---|---|
| Cache | Diperlukan untuk caching otomatis pada operasi READ |
| Distributed Lock | Diperlukan untuk per-record lock di cluster mode |
| Idempotency | Diperlukan untuk perlindungan duplikasi pada endpoint mutasi |
| Rate Limit (cluster) | Diperlukan agar rate limit konsisten antar worker. Pada single instance, in-memory store digunakan sebagai alternatif |
| ID Generator | Diperlukan untuk generator nomor dan kode unik |
| Job Scheduler | Diperlukan untuk background job berbasis BullMQ |
Jika Redis tidak tersedia saat runtime, fitur yang bergantung pada Redis di-bypass secara graceful. Operasi CRUD tetap berjalan normal tanpa menyebabkan error.
Kebutuhan per Skenario Deployment
Kebutuhan infrastruktur bervariasi tergantung pada skala dan tujuan deployment.
Development dan Testing
| Komponen | Kebutuhan |
|---|---|
| Node.js | 22.x LTS |
| Database | Salah satu dari PostgreSQL, MySQL, atau Oracle |
| Redis | Opsional (hanya jika menguji fitur cache, lock, atau job) |
| Mode | Single instance |
Production Skala Kecil
| Komponen | Kebutuhan |
|---|---|
| Node.js | 22.x LTS |
| Database | PostgreSQL, MySQL, atau Oracle (versi terbaru yang didukung) |
| Redis | Direkomendasikan |
| CPU | 2+ core untuk cluster mode |
| Memory | 1-2 GB |
| Mode | Cluster mode dengan PM2 |
Production Enterprise
| Komponen | Kebutuhan |
|---|---|
| Node.js | 22.x LTS |
| Database | PostgreSQL, MySQL, atau Oracle dengan konfigurasi HA (streaming replication, connection pooling) |
| Redis | Wajib, dengan konfigurasi Sentinel atau Cluster untuk HA |
| CPU | 4+ core per server |
| Memory | 4+ GB per server |
| Mode | Multi-server dengan load balancer (Nginx/HAProxy) |
| Storage | NFS atau shared storage untuk file export/import |
Desain Stateless (Stateless Design)
RESTForge dirancang stateless sehingga horizontal scaling tidak memerlukan konfigurasi khusus.
| Aspek | Implementasi |
|---|---|
| Session state | Tidak ada server-side session. Setiap request bersifat self-contained |
| Shared state | Cache, lock, idempotency, dan job queue di-share via Redis |
| Database connection | Connection pool per instance dengan auto-recovery |
Desain stateless ini memungkinkan penambahan instance baru cukup dengan menjalankan proses RESTForge tambahan di belakang load balancer tanpa perlu sinkronisasi state antar instance.