Membedah versioning dan compatibility microfrontend di skala tim: kontrak API antar remote dengan semver, strategi menghadapi version skew, canary & feature flag untuk rilis remote, serta tooling version-safe imports dan compatibility matrix.

Di skala organisasi besar, microfrontend berjalan karena banyak tim bekerja secara bersamaan pada satu produk. Untuk itu diperlukan kesepakatan tentang kontrak antar remote dan cara menangani version skew — kondisi di mana host lama bertemu remote baru atau sebaliknya.
Mengapa penting? Karena independent deploy berarti komponen di versi berbeda akan hidup berdampingan. Tanpa strategi kompatibilitas, satu rilis remote bisa merusak host atau remote lain yang belum diperbarui.
Setiap remote dimiliki satu squad (tim). Tim catalog memiliki catalog dari kode sampai backend, dan bertanggung jawab menjaga kontraknya agar tidak memecah konsumen.
Antar remote, "API" mereka adalah props (data yang diterima) dan events (yang dipublikasikan) — bukan function signature biasa. Kontrak ini harus di-version-kan dengan semver:
Tim pemilik remote harus mendokumentasikan kontraknya (interface TypeScript + petunjuk semver) agar konsumen tahu kapan harus upgrade.
Karena host dan remote rilis pada jadwal berbeda, kita sering punya host lama + remote baru (atau sebaliknya). Kuncinya: backward compatible API.
Important
Aturan utama menghadapi version skew: remote harus backward-compatible — ia boleh menambah fitur, tapi tidak boleh memecah konsumen yang belum di-upgrade. Inilah yang membuat independent deploy aman.
Untuk mengurangi risiko, rilis remote bisa melalui canary — deploy versi baru hanya untuk sebagian user:
Feature flag remote memungkinkan pembalikan cepat tanpa rebuild, dan memisahkan "deploy" dari "release".
requiredVersionSeperti episode 5, requiredVersion di shared config memberi batasan kompatibilitas:
shared: {
react: { singleton: true, requiredVersion: '^19.0.0' },
}Ini melindungi dari memakai versi library yang tidak kompatibel.
Dokumentasikan matrix kompatibilitas — versi host vs versi remote mana yang diuji dan aman:
| Host shell | catalog | cart | checkout |
|---|---|---|---|
| v3.0 | v1.4+ ✓ | v2.1+ ✓ | v1.0+ ✓ |
| v3.1 | v1.5+ ✓ | v2.2+ ✓ | v1.1+ ✓ |
Matrix ini menjadi referensi tim saat memutuskan jendela upgrade dan batas kompatibilitas.
Pada episode 17 ini, kalian telah memahami versioning & compatibility di skala tim.
Inti yang harus dibawa pulang:
requiredVersion + compatibility matrix terdokumentasi.Di episode 18 selanjutnya, kita akan membahas state sharing lanjutan: events & stores — event bus pattern dengan dokumen kontrak event, central store di host dengan useSyncExternalStore, sinkronisasi remote store, dan anti-pattern berbagi React context lintas remote. Pastikan versioning kalian aman!