Backend

Muhammad Arif Rivai | Aug 19, 2025 min read

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 routescontrollersservicesrepositoriesdatabase. 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, DELETE sesuai semantik.
  • Status Code: 200/201/204, 400/401/403/404, 409, 422, 500.
  • Versioning: /v1/... atau Accept: application/vnd.app.v1+json.
  • Pagination/Filter/Sort: ?page=1&limit=20&sort=-createdAt&status=active.
  • Idempotensi: gunakan PUT/DELETE secara 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..." }
}