Belajar ElysiaJS - Sejarah, Latar Belakang & Mengapa ElysiaJS
Episode 1 of 21

Belajar ElysiaJS - Sejarah, Latar Belakang & Mengapa ElysiaJS

Menelusuri evolusi backend JavaScript dari Express callback era hingga lahirnya ElysiaJS sebagai solusi type-safe end-to-end tanpa code generation, serta memahami mengapa Bun menjadi runtime yang tepat untuk framework modern berperforma tinggi.

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 0 kita menyiapkan environment — memastikan Bun ≥ 1.3 terinstall dan VS Code siap — pada episode ini kita menarik napas sejenak dari hands-on dan memahami mengapa ElysiaJS ada. Sejarah sebuah framework mungkin terasa tidak penting, padahal justru di sanalah letak alasan mengapa desainnya seperti sekarang.

Mengapa harus memahami sejarah ElysiaJS? Karena ElysiaJS tidak lahir dari keinginan untuk menambah daftar framework backend, melainkan dari kebutuhan nyata developer TypeScript yang frustrasi dengan duplikasi tipe antara client dan server. Memahami asal-usulnya akan menjelaskan keputusan-keputusan desainnya — mengapa ElysiaJS memilih TypeBox sebagai fondasi type system, mengapa ia terikat pada runtime Bun, dan mengapa Eden Treaty bisa menghilangkan kebutuhan code generation.

Masalah yang Diselesaikan ElysiaJS

Masalah utama yang dihadapi developer TypeScript di backend adalah gap antara tipe di server dan client. Ketika kalian menulis route POST /user dengan body { name: string, email: string } di server, client harus mendefinisikan ulang tipe yang sama secara manual — atau menggunakan code generation seperti OpenAPI + Orval/Swagger Codegen. Proses ini lambat, error-prone, dan menjaga sinkronisasi tipe menjadi beban berkelanjutan.

ElysiaJS menyelesaikan masalah ini dengan cara yang elegan: schema yang didefinisikan di route secara otomatis menghasilkan tipe TypeScript yang bisa di-import langsung oleh client melalui Eden Treaty. Tanpa code generation step, tanpa duplikasi, tanpa kehilangan sinkronisasi.

Evolusi Backend JavaScript/TypeScript

Perjalanan backend JavaScript dimulai dari era callback hingga arrive-nya type-safe end-to-end:

EraFrameworkTahunKarakteristik
Callback eraExpress.js2010Minimalis, tanpa type built-in, community besar
Performance eraFastify2018Plugin architecture, JSON Schema validation, performa tinggi
Type-safe end-to-end eraElysiaJS2022TypeBox, zero code generation, Bun-native

Express.js: Fondasi yang Terlalu Longgar

Express mendominasi backend JavaScript selama satu dekade. Kelebihannya: simpel, fleksibel, dan community yang sangat besar. Namun kekurangannya kritis untuk proyek TypeScript: tidak ada built-in type system. Kalian harus menambahkan tipe secara manual dengan @types/express, dan bahkan itu pun tidak lengkap — banyak kasus di mana tipe tidak match dengan perilaku runtime.

Fastify: Performa, tapi Belum Type-Safe End-to-End

Fastify memperbaiki Express di sisi performa dan validasi. Ia menggunakan JSON Schema untuk validasi request, dan karena itu tipe bisa di-infer dari schema. Namun masalahnya tetap ada: tipe di server tidak otomatis tersedia di client. Kalian masih perlu code generation atau duplikasi manual.

ElysiaJS: Solusi Type-Safe Tanpa Code Generation

ElysiaJS mengambil pendekatan berbeda: alih-alih menggunakan JSON Schema secara langsung, ia menggunakan TypeBox — library yang membangun JSON Schema dari definisi tipe TypeScript. Hasilnya: schema validation otomatis, tipe route otomatis terekspos ke Eden client, dan zero code generation step.

Mengapa Bun Menjadi Runtime yang Tepat

Bun dirancang sebagai pengganti Node.js yang lebih cepat dan modern. Untuk ElysiaJS, Bun menawarkan beberapa keuntungan kritis:

  • Kecepatan cold start: Bun memulai server dalam hitungan milidetik, bukan detik — ini krusial untuk serverless dan edge deployment.
  • Native TypeScript execution: Tidak perlu kompilasi sebelum runtime, Bun menjalankan TypeScript langsung.
  • Bun.serve() API: ElysiaJS menggunakan Bun.serve() di bawah hood — HTTP server bawaan Bun yang sangat cepat.
  • Built-in test runner dan bundler: Mengurangi kebutuhan tools tambahan.

Mengapa ElysiaJS Populer (2024-2026)

Tiga alasan utama ElysiaJS mendapat traction dalam waktu singkat:

Performance Luar Biasa

Di benchmark HTTP, ElysiaJS mencapai 500k-800k req/s untuk simple routes di atas Bun — angka yang sulit dicapai framework lain di Node.js. Ini bukan sekadar angka benchmark, tapi berdampak nyata pada biaya infrastruktur untuk high-traffic API.

Type Inference End-to-End

Eden Treaty memungkinkan client untuk mengimpor tipe langsung dari server tanpa code generation. Update tipe di server → client otomatis mendapat update tanpa regenerasi apapun.

Ekosistem Plugin yang Terus Tumbuh

ElysiaJS memiliki plugin untuk hampir semua kebutuhan: CORS, JWT, Swagger, static files, OAuth — semuanya terintegrasi mulus dengan type system.

Perbandingan Singkat

AspekExpressFastifyElysiaJS
RuntimeNode.jsNode.jsBun
Type safetyManualPartialEnd-to-end
PerformanceBaselineTinggiSangat tinggi
Code generationTidak adaTidak adaTidak diperlukan
Plugin systemMiddlewarePluginPlugin
TypeBox integrationTidakJSON SchemaNative

Note

ElysiaJS tidak menggantikan Express atau Fastify untuk semua use case. Jika kalian sudah memiliki codebase besar di Node.js, migrasi ke ElysiaJS perlu pertimbangan matang. Namun untuk proyek baru yang menginginkan type safety end-to-end dan performa tinggi, ElysiaJS adalah pilihan yang sangat kompetitif.

Penutup

Pada episode 1 ini, kalian telah memahami perjalanan backend JavaScript dari Express callback era hingga lahirnya ElysiaJS sebagai solusi type-safe end-to-end.

Inti yang harus dibawa pulang:

  • ElysiaJS menyelesaikan masalah duplikasi tipe antara client dan server tanpa code generation.
  • Evolusi backend: Express → Fastify → ElysiaJS, setiap tahap memperbaiki masalah sebelumnya.
  • Bun menjadi runtime tepat untuk ElysiaJS karena kecepatan cold start dan native TypeScript execution.
  • Performance 500k-800k req/s, type inference end-to-end, dan ekosistem plugin yang tumbuh pesat.

Di episode 2 selanjutnya kita akan membedah konsep dasar dan arsitektur utama ElysiaJS — core routing engine, TypeBox integration, plugin system, Eden Treaty, serta perbandingan mendalam dengan framework lain. Sampai jumpa di episode 2!

Belajar ElysiaJS - Sejarah, Latar Belakang & Mengapa ElysiaJS | Belajar ElysiaJS