Gambaran Umum
Backend adalah otak dari aplikasi: menjalankan logika bisnis, mengelola data, dan menghubungkan berbagai layanan. Jika frontend adalah antarmuka, backend memastikan semua proses di balik layar berjalan aman, cepat, dan andal.
Tulisan ini merangkum hal-hal penting yang perlu dikuasai seorang backend engineer—dengan fokus pada Node.js/Express, MySQL/PostgreSQL, REST API, serta praktik Cloud (GCP).
Arsitektur & Pola Umum
- Layered Architecture
Pisahkan routes → controllers → services → repositories → database. Memudahkan testing & pemeliharaan. - Clean Architecture / Hexagonal
Logika bisnis independen dari framework atau database. Cocok untuk sistem besar & mudah diganti komponennya. - Monolith vs Microservices
Mulai dari monolith (lebih cepat dan sederhana). Beranjak ke microservices jika skala/kompleksitas menuntut (team besar, domain terpisah, skala berbeda).
Prinsip kunci: separation of concerns, loose coupling, high cohesion.
Desain API (REST)
- Resource-oriented:
/users,/orders/{id},/orders/{id}/items. - HTTP Method:
GET,POST,PUT/PATCH,DELETEsesuai semantik. - Status Code:
200/201/204,400/401/403/404,409,422,500. - Versioning:
/v1/...atauAccept: application/vnd.app.v1+json. - Pagination/Filter/Sort:
?page=1&limit=20&sort=-createdAt&status=active. - Idempotensi: gunakan
PUT/DELETEsecara idempoten; untuk safe retries gunakan idempotency key pada operasi sensitif.
Contoh Respons Konsisten
{
"success": true,
"data": { "id": "123", "name": "Arif" },
"error": null,
"meta": { "requestId": "b1f..." }
}