Nephalem

Selama ribuan millenia, malaikat dan iblis saling bertarung. Dalam konflik abadi itu, baik kedua pihak yang berselisih sama-sama menderita kerugian. Jutaan malaikat maupun iblis sama-sama meregang nyawa.

Semua pihak sepakat bahwa peperangan harus dihentikan. Dan satu-satunya cara menghentikan perang adalah dengan kemenangan salah satu pihak.

Namun demikian, tak semua malaikat dan iblis menyukai perang. Beberapa di antara mereka memilih untuk tak terlibat dalam konflik. Para penghianat itupun kemudian menciptakan dunianya sendiri. Sebuah dunia yang disebut "Sanctuary". Beberapa Iblis dan Malaikat pada akhirnya saling jatuh cinta dan menghasilkan keturunan. Suatu ras baru yang merupakan gabungan antara iblis dan malaikat. Merekapun dikenal dengan sebutan "Nephalem". Dalam batin mereka, tersimpan api neraka dan kidung surgawi. Dalam hati mereka bergejolak konflik abadi yang tak pernah berakhir.

Lilith, Inarius, dan nephalem

Lilith, Inarius, dan nephalem

Kisah tersebut menjadi latar belakang franchise Diablo. Sebuah game besutan Blizzard yang cukup populer hingga saat ini. Walaupun sepenuhnya fiksi, namun asal muasal nephalem yang dikisahkan merupakan leluhur manusia tampaknya tak sepenuhnya omong kosong. Sebagai manusia, kita kerap mengalami konflik internal berkepanjangan. Rasio dan intuisi kita kerap kali bertentangan. Di satu sisi, kita ingin makan bakso, namun di sisi lain kita juga ingin menikmati manisnya es krim. Di satu sisi kita sadar bahwa tak ada yang sempurna, namun di sisi lain kita justru mati-matian mengejar kesempurnaan.

Di satu sisi, saya barangkali tidak ingin menghabiskan terlalu banyak waktu di depan komputer, namun di sisi lain saya justru menghabiskan liburan saya di depan komputer. Menciptakan sebuah declarative task runner yang kemudian saya namai "Zaruba". Zaruba adalah implementasi dari segala kekecewaan sekaligus harapan saya atas flow kerja yang selama ini saya lakukan.

Walaupun berawal sebagai personal automaton, tampaknya kisah asal-muasal Zaruba cukup berguna dan menarik untuk dibagikan.

Membuat Personal Automaton

Zaruba

Project Zaruba (https://github.com/state-alchemists/zaruba) pertama kali dibuat pada bulan Oktober 2019. Saat itu saya merasa cukup malas harus menjalankan banyak service secara bersamaan di laptop. Ada kalanya saya harus membagi layar menjadi menjadi enam panel tmux, me load setiap environment dengan hati-hati, dan menjalankan service-service secara berurutan. Beberapa service mungkin sudah containerized, sementara beberapa yang lain masih dalam fase pengembangan. Menjalankan docker build tentu saja akan memakan waktu yang tak sebentar.

Beberapa solusi pernah saya coba, di antaranya:

Di tengah kekecewaan yang ada, secercah harapan pun lahir. Docker-compose dan makefile sudah melaksanakan tugasnya dengan baik. Beberapa spesifikasi yang ada pada docker-compose bahkan menginspirasi saya untuk menentukan spesifikasi zaruba.

Secara bertahap dan ragu, saya mulai menuliskan harapan-harapan saya dalam bentuk acceptance criteria: