Microfrontend? Microservices ?
Microfrontend adalah konsep microservices yang dibawa untuk frontend. Layaknya microservices yang terdiri dari modul terpisah dan mandiri, microfrontend pun demikian. Microfrontend merupakan modul-modul yang dibangun oleh team developer terpisah menggunakan bahasa pemrograman mereka masing-masing. Dari modul-modul ini kemudian dijadikan menjadi satu sehingga tercipta satu user experience yang konsisten.
Pada microfrontend, tidak ada team yang memiliki ownership atas UI secara keseluruhan. Masing-masing komponen dari suatu halaman aplikasi menjadi tanggung jawab masing-masing team pada microfrontend. Contohnya, pada suatu halaman terdapat komponen sidemenu, header, konten utama dan footer. Pada microfrontend masing-masing komponen tersebut dibangun oleh team yang berbeda-beda.
Pada contoh di atas kita dapat tahu bagaimana cara kerja microfrontend secara garis besar. Tapi bukan hanya per-komponen halaman aplikasi. Microfrontend juga dapat dibangun per-halaman aplikasi. Misal, halaman home dibangun oleh team homepage, halaman produk dibangun oleh team produk.
Dengan microfrontend anda dapat membangun team developer secara vertikal, dimana setiap team dapat memiliki stack frontend dan stack backend mereka sendiri.
Beberapa keuntungan menggunakan microfrontend :
1. Agnostic atau teknologi independent
Masing-masing team dapat menggunakan bahasa pilihan mereka sendiri. Hal ini juga mengurangi ketergantungan anda pada satu bahasa atau satu teknologi tertentu saja.
2. Reliabilitas
Jika satu modul gagal maka tidak mempengaruhi yang lainnya karena konsep isolasi dari pendekatan microfrontend ini.
3. Mudah untuk dimaintain
Karena code base yang terpisah antar team, menjadikan code base aplikasi anda tidak terkumpul menjadi satu. Sebaliknya, karena masing-masing team memiliki code base sendiri hal ini memudahkan untuk melakukan maintain pada code base.
Microfrontend juga memiliki kekurangan :
1. Karena setiap komponen dibuat oleh team yang berbeda, menjada konsistensi dari aplikasi anda dapat menjadi challenge tersendiri.
2. Untuk menghindari duplikasi maka beberapa komponen dapat saling berbagi assets dan library. Hal ini dapat memicu terjadinya irisan yang tidak diinginkan.
Karena itu dalam membangun microfrontend diperlukan koordinasi dan komunikasi yang baik.
Jika anda memutuskan untuk menggunakan konsep microfrontend, gunakan jika aplikasi anda kompleks dan anda memiliki banyak resources. Dan perlu digaris-bawahi bahwa sampai saat ini belum ada ramuan tertentu untuk membangun microfrontend. Riset, error & trial perlu dipertimbangkan ketika mengadopsi konsep ini.