Lewati ke konten utama
menjadi.dev
Chapter 17.24 Backend Lanjutan

Backend Stack: Integrasi Lengkap

Satukan Bun + Hono + Drizzle + Redis + Supabase dalam satu proyek

Tujuan Pembelajaran

  • Bisa setup project backend lengkap
  • Mengerti integrasi antar teknologi
  • Mampu deploy aplikasi backend production

Analogi

Diagram

      Backend Stack:
Bun (runtime) → Hono (framework) → Drizzle ORM (database) → Redis (cache) → Supabase (BaaS opsional)
    

Semua teknologi ini saling melengkapi membentuk ekosistem backend modern

Penjelasan Konsep

Kita sudah mempelajari setiap teknologi backend secara individual. Sekarang saatnya menyatukan semuanya dalam satu proyek nyata.

Stack Overview

  1. Bun: Runtime JavaScript yang cepat dengan built-in tools
  2. Hono: Framework web lightweight untuk routing dan middleware
  3. Drizzle ORM: Type-safe SQL queries dengan PostgreSQL/SQLite
  4. Redis: Caching, session store, dan real-time features
  5. Supabase: BaaS opsional untuk auth, storage, dan real-time
  6. Dokploy: Self-hosted deployment platform

Setup Project Baru

Langkah 1: Init project

mkdir my-backend && cd my-backend
bun init -y

Langkah 2: Install dependencies

bun add hono drizzle-orm postgres redis
bun add -d drizzle-kit @types/bun

Langkah 3: Struktur folder

src/
├── index.ts          # Entry point
├── app.ts            # Hono app setup
├── db/
│   ├── schema.ts     # Drizzle schema
│   └── index.ts      # Database connection
├── routes/
│   ├── users.ts      # User routes
│   └── todos.ts      # Todo routes
├── middleware/
│   ├── auth.ts       # Auth middleware
│   └── cache.ts      # Cache middleware
├── services/
│   ├── user.service.ts
│   └── cache.service.ts
└── types.ts          # Shared types

Workflow Development

  1. Definisikan schema database
  2. Generate dan apply migrations
  3. Buat routes dan handlers
  4. Tambahkan middleware (auth, cache, logging)
  5. Tulis tests
  6. Build dan deploy

Tips Produktivitas

  • Gunakan Bun —watch untuk auto-reload saat development
  • Drizzle Studio untuk explore database
  • Redis CLI untuk debug cache
  • Hono logger middleware untuk request logging

Deployment

  1. Test locally dengan bun test
  2. Build Docker image
  3. Deploy ke Dokploy/VPS
  4. Setup monitoring dan alerts
  5. Configure CI/CD untuk auto-deploy

Dengan 24 chapter ini (17.1-17.24), kamu sudah menguasai ekosistem backend modern. Selamat!

Inti yang Perlu Dipahami

Bagian ini berfokus pada bisa setup project backend lengkap., mengerti integrasi antar teknologi., dan mampu deploy aplikasi backend production. Jangan terburu-buru menghafal istilahnya. Lebih penting untuk memahami peran setiap konsep dan kapan konsep itu muncul dalam pekerjaan web development.

Saat membaca Backend Stack, gunakan tujuan belajar sebagai penanda arah. Kalau kamu sudah bisa menjelaskan tujuan itu dengan kata-katamu sendiri, berarti fondasinya mulai terbentuk.

Cara Membayangkannya

Semua teknologi ini saling melengkapi membentuk ekosistem backend modern. Analogi ini dipakai supaya konsep teknis tidak terasa melayang. Hubungkan setiap istilah dengan perannya: siapa yang meminta, siapa yang memproses, data apa yang berpindah, dan hasil apa yang diharapkan.

Kalau analoginya sudah terasa masuk akal, barulah lihat istilah teknisnya. Cara ini membuat materi lebih mudah dipahami daripada langsung menghafal definisi.

Saat Melihat Contoh Kode

Contoh kode pada chapter ini memakai bahasa bash. Bacalah contoh kode sebagai ilustrasi alur, bukan sebagai bagian yang harus langsung dihafal. —frozen-lockfile untuk production ensures reproducible builds. db:migrate saat build memastikan schema up-to-date.

Perhatikan nama fungsi, urutan langkah, dan data yang berpindah. Biasanya tiga hal itu sudah cukup untuk memahami hubungan antara teori dan praktik.

Konteks dalam Perjalanan Belajar

Setiap konsep di platform ini dipilih karena dipakai di industri. Fokus pada pemahaman, bukan hafalan.

Kamu sudah di bagian lanjutan. Mulai pikirkan bagaimana konsep ini dipakai di dunia kerja — bukan hanya untuk belajar, tapi untuk membangun produk nyata.

Gunakan pertanyaan reflektif dan prompt AI di akhir chapter sebagai latihan aktif. Membaca saja tidak cukup — kamu perlu menjelaskan ulang dengan kata-katamu sendiri.

Contoh Kode

bash
# Complete backend project setup
mkdir my-backend && cd my-backend
bun init -y

bun add hono drizzle-orm postgres redis zod
bun add -d drizzle-kit @types/bun

# drizzle.config.ts
import { defineConfig } from 'drizzle-kit';
export default defineConfig({
  schema: './src/db/schema.ts',
  out: './drizzle',
  dialect: 'postgresql',
  dbCredentials: { url: process.env.DATABASE_URL! },
});

# package.json scripts
{
  "scripts": {
    "dev": "bun --watch src/index.ts",
    "build": "bun build src/index.ts --outdir ./dist",
    "start": "bun dist/index.js",
    "db:generate": "drizzle-kit generate",
    "db:migrate": "drizzle-kit migrate",
    "db:studio": "drizzle-kit studio",
    "test": "bun test",
    "lint": "bunx eslint src",
  }
}

# Dockerfile
FROM oven/bun:1
WORKDIR /app
COPY package.json bun.lockb ./
RUN bun install --frozen-lockfile --production
COPY . .
RUN bun run db:migrate
EXPOSE 3000
CMD ["bun", "run", "src/index.ts"]

Penjelasan Kode

--frozen-lockfile untuk production ensures reproducible builds. db:migrate saat build memastikan schema up-to-date.

Prompt AI

Setup project backend lengkap dan deploy ke Dokploy. Buat API documentation dengan Swagger/OpenAPI.

Pertanyaan Reflektif

Kamu sudah menguasai fullstack JavaScript modern. Frontend (React + Vite + Tailwind + shadcn/ui) + Backend (Bun + Hono + Drizzle + Redis) + Deployment (Dokploy).