Elixir untuk Technical Leader — Bab 9 dari 10
Elixir bukan mainstream. Itu fakta. Tapi "kecil" bukan berarti "risiko tinggi" — kalau kamu tau landscape-nya dan punya rencana cadangan.
Komunitas Elixir itu kecil tapi sangat berkualitas. Beda dengan JavaScript yang jutaan developer tapi banyak library asal-asalan, Elixir punya komunitas yang curated — orang-orang yang memilih Elixir biasanya sudah pengalaman dan tau apa yang mereka cari.
| Channel | Detail | Aktivitas |
|---|---|---|
| ElixirForum | Forum resmi komunitas | Ribuan thread aktif, response time cepat (biasanya < 24 jam). José Valim sendiri sering jawab. |
| ElixirConf | Konferensi tahunan (US + EU) | 2x setahun. Talks dari Discord, Pinterest, Fly.io. Video di YouTube gratis. |
| hex.pm | Package registry (seperti npm untuk JS) | 15.000+ packages. Download rate terus naik. Top packages jutaan download. |
| GitHub | elixir-lang/elixir | 23.000+ stars. Rilis rutin setiap ~3 bulan. Issue response cepat. |
| Slack/Discord | Elixir Slack + community Discord | Ribuan anggota aktif, channel per topik (#phoenix, #ecto, #nerves). |
Mengenal siapa di balik teknologi itu penting. Kalau founder bahasa tiba-tiba cabut, apa yang terjadi?
| Nama | Peran | Detail |
|---|---|---|
| José Valim | Creator Elixir, co-founder Dashbit | Ex-Rails core team. Bikin Elixir tahun 2012. Masih sangat aktif — commit hampir tiap minggu. Dashbit = perusahaan konsultan yang sustainability-nya dari Elixir consulting. Incentive-nya aligned: semakin Elixir sukses, semakin Dashbit profit. |
| Chris McCord | Creator Phoenix & LiveView | Kerja di Fly.io. Phoenix = web framework utama Elixir. LiveView = teknologi yang bikin LabaBersih bisa real-time tanpa JavaScript. Fly.io invest besar di Elixir ecosystem — mereka punya incentive jaga Phoenix tetap hidup. |
| Erlang/OTP team | Maintain BEAM VM | Tim di Ericsson (perusahaan $25B+ revenue). BEAM dipakai untuk infrastruktur telekomunikasi yang gak boleh mati. Ericsson gak akan buang teknologi yang jadi tulang punggung bisnis mereka. |
| Core team lainnya | Andrea Leopardi, Wojtek Mach, dll | 10+ core contributors aktif. Bukan one-man show. Kalau José gak aktif besok, Elixir tetap jalan. |
Ini bukan bahasa eksperimen akademis. Perusahaan-perusahaan ini pakai Elixir/BEAM di production, skala besar:
| Perusahaan | Skala | Kenapa BEAM |
|---|---|---|
| 2 miliar user, 100 miliar pesan/hari | Erlang (BEAM). Famously hanya butuh ~50 engineer untuk handle 900 juta user saat diakuisisi Facebook $19B. Produktivitas per engineer tertinggi di dunia. | |
| Discord | 200+ juta user aktif | Elixir. Handle 11 juta concurrent connections di satu server. Real-time messaging. "Elixir lets us handle millions of concurrent users with minimal infrastructure." |
| 450+ juta user aktif | Elixir untuk notification system dan API layer. Migrasi dari Java — kode 10x lebih sedikit, performa sama. | |
| Brex | Fintech, valuasi $12B+ | Elixir untuk core banking & payment processing. Fintech butuh reliability — BEAM deliver. |
| PepsiCo | Fortune 500, $80B+ revenue | Elixir untuk e-commerce internal. Pilih Elixir karena real-time + reliability. |
| Supabase Realtime | Realtime engine, jutaan koneksi | Elixir. Ironic — kamu pindah dari Supabase, tapi realtime engine mereka sendiri pakai Elixir. |
| Fly.io | Hosting platform, tempat LabaBersih deploy | Internal tools pakai Elixir. Chris McCord (creator Phoenix) kerja di sini. Mereka literally invest di ekosistem kita. |
| Heroku | Platform-as-a-Service (Salesforce) | Routing layer pakai Erlang/BEAM. Handle jutaan HTTP request per detik. |
| Cisco (Webex) | Enterprise video conferencing | Erlang/BEAM untuk signaling dan routing. Real-time communication = sweet spot BEAM. |
hex.pm adalah package registry Elixir (seperti npm untuk Node.js, PyPI untuk Python). Ini packages yang LabaBersih pakai:
| Package | Fungsi | Downloads | Status |
|---|---|---|---|
| Phoenix | Web framework | 30M+ | Sangat aktif. Chris McCord + tim Fly.io maintain. |
| Ecto | Database layer (query, schema, migration) | 40M+ | Core Elixir. José Valim maintain. |
| Oban | Background job queue (sync, daily journal) | 10M+ | Parker Selbert maintain. Model bisnis: Oban Pro (paid). |
| Swoosh | Email sending (Resend adapter) | 15M+ | Aktif. Support 10+ email provider. |
| Req | HTTP client (API TikTok, Mengantar) | 8M+ | Wojtek Mach (Elixir core team). Modern. |
| Guardian | JWT authentication | 8M+ | Stabil. Standard de facto untuk auth Elixir. |
| ExDoc | Documentation generator | 30M+ | José Valim. Built-in di Elixir tooling. |
| Credo | Static code analysis (linter) | 20M+ | Standard linter Elixir. CI/CD friendly. |
| Sobelow | Security scanner | 5M+ | Scan vulnerability (XSS, SQL injection, dll). |
BEAM itu bukan milik Elixir. BEAM = virtual machine yang bisa menjalankan beberapa bahasa:
| Bahasa | Tahun | Karakter | Status |
|---|---|---|---|
| Erlang | 1986 | Bahasa asli BEAM. Syntax ala Prolog. Dipakai Ericsson, WhatsApp, RabbitMQ. | Sangat mature. Rilis rutin. Ericsson maintain. |
| Elixir | 2012 | Syntax modern (Ruby-like). Macro, pipe operator, Mix tooling. Dipakai Discord, Pinterest, LabaBersih. | Aktif. José Valim + core team. |
| Gleam | 2020 | Bahasa baru di BEAM. Type-safe (seperti TypeScript untuk JavaScript). Growing fast. | Muda tapi menarik. Compile ke BEAM dan JS. |
Semua bahasa BEAM bisa saling panggil. Kode Erlang bisa dipanggil dari Elixir, dan sebaliknya. Library Erlang (seperti :crypto, :ets) langsung available di Elixir tanpa wrapper.
# Memanggil modul Erlang langsung dari Elixir
:crypto.hash(:sha256, "hello")
# ^ modul Erlang, dipanggil dari Elixir. Seamless.
:ets.new(:my_cache, [:set, :public])
# ^ Erlang Term Storage, in-memory cache, available di Elixir
Ini kekhawatiran yang paling sering muncul: "Kalau butuh developer Elixir, carinya di mana?"
| Skenario | Risiko | Mitigasi |
|---|---|---|
| Kamu butuh hire developer manusia | Medium — pool kecil | Remote hiring global. Developer Elixir biasa remote. Atau: hire developer Ruby/Python yang mau belajar Elixir (transisi relatif mudah, 2-4 minggu). |
| Claude gak bisa lagi akses Elixir | Sangat rendah | Elixir documentation publik, open source. Semua AI model bisa belajar dari sumber yang sama. |
| Perlu scaling team ke 5+ engineer | Low — jauh dari sekarang | Saat itu revenue sudah cukup untuk attract talent dengan gaji premium. Atau: pakai Elixir + non-Elixir services (microservice tertentu di Go/Node). |
Ini tabel paling penting di bab ini. Setiap risiko yang bisa dibayangkan, severity-nya, dan apa rencana cadangannya:
| Risiko | Severity | Probabilitas | Mitigasi |
|---|---|---|---|
| Developer pool kecil | Medium | Tinggi | Pakai AI (Claude) sebagai developer utama. Remote hiring global. Hire Ruby/Python dev + train 2-4 minggu. Gaji premium attract talent. |
| Library ecosystem lebih kecil dari npm | Low | Tinggi | Semua kebutuhan LabaBersih sudah ada (Phoenix, Ecto, Oban, Swoosh, Guardian, Req). Kalau perlu library spesifik yang gak ada, bisa panggil Erlang library langsung. Atau bikin sendiri (Elixir sangat composable). |
| BEAM VM discontinued | High | Hampir 0 | Ericsson ($25B revenue) bergantung pada BEAM untuk infrastruktur telekomunikasi global. BEAM open source sejak 1998. 35+ tahun track record. Ini seperti bertanya "apakah Linux akan discontinued?" — terlalu banyak yang bergantung. |
| José Valim berhenti develop Elixir | Medium | Rendah | 10+ core contributors aktif. Dashbit (perusahaan José) punya bisnis model dari Elixir consulting — incentive-nya aligned. Bahkan kalau José pensiun, Elixir sudah mature dan self-sustaining. |
| Phoenix framework abandoned | Medium | Rendah | Chris McCord kerja di Fly.io yang invest besar di Elixir. Phoenix sudah sangat stabil — walau development berhenti, kode kita tetap jalan. Elixir bisa berjalan tanpa Phoenix (Plug, Bandit, dll). |
| Fly.io shutdown | Medium | Rendah | Elixir app = Docker container standard. Bisa deploy ke mana saja: AWS, GCP, DigitalOcean, Railway, Render, bare metal. Migrasi hosting = 1-2 hari kerja. PostgreSQL dump+restore. |
| Oban (background jobs) discontinued | Low | Rendah | Oban punya model bisnis sehat (Oban Pro = paid). Kalau worst case: alternatif ada (Quantum, Exq). Atau bikin scheduler sendiri dengan GenServer (Elixir native concurrency). |
| Claude/AI gak bisa generate Elixir lagi | High | Hampir 0 | Elixir documentation open source. Semua AI model (Claude, GPT, Gemini, open source) bisa belajar Elixir. Bahkan kalau 1 AI vendor tutup, pindah ke vendor lain. AI semakin pintar, bukan semakin bodoh. |
| PostgreSQL discontinued | High | Hampir 0 | PostgreSQL = database open source paling populer di dunia. Dipakai oleh Apple, Instagram, Spotify, dan ribuan perusahaan lain. 35+ tahun umur. Ini BUKAN risiko nyata. |
| Elixir gak cocok untuk LabaBersih scale | High | Hampir 0 | WhatsApp handle 2 miliar user dengan BEAM. Discord handle 11 juta concurrent connections. LabaBersih 6.300 order/hari = remah-remah bagi BEAM. Kita gak akan pernah outgrow teknologi ini. |
Sebagai technical leader, kamu HARUS punya jawaban untuk: "Kalau Elixir ternyata salah pilih, apa rencana B?"
Kabar baiknya: LabaBersih di-design supaya portable.
Database kita PostgreSQL — database paling standard di dunia. Data kamu gak terkunci di Elixir.
# Export semua data dalam 1 command:
pg_dump -F c -f lababersih_backup.dump lababersih_prod
# Restore ke environment baru (Node.js, Go, Rails, apapun):
pg_restore -d lababersih_new lababersih_backup.dump
# Selesai. Semua data, semua schema, semua index.
# Gak peduli bahasa program apa yang baca database ini.
pg_dump + pg_restore = works anywhere. Data kamu milik kamu, bukan milik framework.
Ini keunggulan cara kerja kita. Semua business logic LabaBersih terdokumentasi di luar kode:
CLAUDE.md — arsitektur lengkap, stack, rules, anti-patternrules/business-rules.md — 10 layer, semua business rule, status transitionrules/journal-formulas.md — 14 formula jurnal akuntansirules/pipeline-design.md — 3-track status, side effects, trigger sourcesrules/v2-execution-blueprint.md — 6 domain, semua schema, semua functionDokumen-dokumen ini bahasa-agnostik. Kalau kamu perlu rewrite ke Go, Node.js, atau Rails — kasih dokumen ini ke AI atau developer, dan mereka bisa rebuild tanpa reverse-engineer kode Elixir.
| Alternatif | Effort Rewrite | Cocok untuk | Risiko |
|---|---|---|---|
| Node.js / Express | 3-4 bulan (AI-assisted) | Developer pool besar, ecosystem besar | Concurrency model lebih lemah. Callback hell. Runtime crash = semua mati. |
| Go | 3-4 bulan (AI-assisted) | Performa tinggi, compile ke binary | Gak ada framework selengkap Phoenix. Error handling verbose. Kurang produktif untuk CRUD. |
| Ruby on Rails | 2-3 bulan (AI-assisted) | Paling mirip Phoenix (Phoenix terinspirasi Rails) | Concurrency lemah. Scaling butuh lebih banyak server. Tapi developer pool besar. |
| Python / Django | 3-4 bulan (AI-assisted) | Developer pool paling besar, ML ecosystem | Real-time lemah (Django Channels exist tapi bukan first-class). GIL = concurrency terbatas. |
| PHP / Laravel | 2-3 bulan (AI-assisted) | Developer pool besar (terutama Indonesia!) | Concurrency terbatas. Real-time butuh tambahan (Pusher/Soketi). Tapi familiar buat dev Indonesia. |
Bayangkan skenario terburuk: Elixir discontinued, Fly.io tutup, dan kamu harus pindah total. Apa yang terjadi?
| Langkah | Aksi | Waktu |
|---|---|---|
| 1 | pg_dump database LabaBersih — semua data aman | 15 menit |
| 2 | Deploy PostgreSQL di provider baru (AWS RDS, DigitalOcean, dll) | 1 jam |
| 3 | pg_restore data ke database baru — semua data kembali | 15 menit |
| 4 | Kasih CLAUDE.md + business-rules.md + journal-formulas.md ke AI | - |
| 5 | AI rewrite ke bahasa baru (e.g. Rails/Node.js), guided by documentation | 3-4 bulan |
| 6 | Test dengan data production (sudah di-restore di step 3) | 2-4 minggu |
| 7 | Switch DNS ke server baru | 5 menit |
Total downtime: 0 (v1/current version tetap jalan sampai v-baru ready).
Perbandingan head-to-head untuk use case spesifik LabaBersih: order management + real-time UI + background jobs + accounting.
if err != nil di mana-mana). Gak ada pattern matching. Kurang produktif untuk CRUD/web app.
| Aspek | Detail |
|---|---|
| Fly.io region | Singapore (sin). Latency ke Jakarta ~10-20ms. Terdekat ke user Indonesia. |
| Alternatif lokal | IDCloudHost, Biznet Gio, DewaWeb — tapi gak ada yang punya Elixir-optimized hosting. Fly.io tetap paling cocok. |
| PostgreSQL | Fly.io PostgreSQL di Singapore. Bisa juga pakai Neon, Supabase, atau AWS RDS ap-southeast-1. |
# LabaBersih enforce WIB (+07:00) di semua datetime
# Ini WAJIB karena:
# - Nelly (admin) kerja WIB
# - Laporan keuangan per bulan WIB
# - Marketplace (TikTok, Shopee) pakai WIB
# - Jurnal tanggal = tanggal WIB, bukan UTC
# Format mata uang:
# Rp 150.000 (titik ribuan, bukan koma)
# -Rp 52.000 (negatif = merah di UI)
# Format tanggal:
# 30 Mar 2026 (bukan March 30, 2026)
Komunitas Elixir di Indonesia masih sangat kecil. Gak ada meetup rutin atau user group yang signifikan. Tapi:
Elixir bukan bahasa yang "selesai". Development aktif terus berjalan:
mix.exs, selesai.Nx (Numerical Elixir) adalah proyek José Valim untuk bawa machine learning ke Elixir. Ini termasuk:
<.button>, <.status_badge>) adalah pattern standard yang akan terus di-support.