Penjadwalan Dinamis dengan AWS Lambda dan CloudWatch Rule dalam Bahasa Go

Sudah lama saya ingin membuat bot Slack yang bisa mengingatkan waktu solat. Alasannya sederhana, di tempat kerja, saya lebih sering lihat Slack dibanding hp, jadi lebih efektif notifikasi slack. Namun saya tidak bisa menemukan Slack application yang tinggal di-install saja. Atau salah kata kunci pencarian ya?

Karena sedang belajar bahasa Go, sekalian saja dijadikan latihan. Saya buat notifikasi solat dengan AWS Lambda dan CloudWatch Rule. Belum lama ini AWS Lambda mendukung bahasa Go. Kenapa dinamis? Karena waktu salat itu berdasarkan posisi matahari yang setiap hari bisa beda.

Desain Sistem

Sistemnya terdiri dari tiga komponen:

Untuk notifikasi ke Slack, saya menggunakan Zapier webhook supaya simple (Eh jadi 4 komponen ya? Biarin lah, one-off error is one of the hardest things in computer science…).

Image for post
Image for post

Lambda SalatTimeJKTDaily akan melakukan hal-hal berikut:

Image for post
Image for post
Image for post
Image for post

Hasilnya

Supaya manfaat, pengingatnya 10 menit sebelum adzan, biar ada waktu siap-siap atau menyelesaikan yang sedang dikerjakan. Kodenya (yang hancur, masih awal belajar Go, ga bersih) open source, bisa diakses di repo sini (maaf reponya juga masih berantakan).

Image for post
Image for post

Written by

Crazy dad. Data technology enthusiast. Youtube: Insinyur Data

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store