kalau datanya udah fix dan sesuai jadwal running daily. Waktunya pindah ke cloud, contohnya aws eventbridge sebagai crontab nya dan lambda sebagai computenya. Lebih efisien dan tahan banting.
Hmm.. aku coba browsing, kalo kayaknya Apache Kafka tidak memungkinkan untuk melakukan hal seperti itu.. Apakah ada teman teman yang pakai Kafka untuk achieve problem sejenis?
@@yunindyoprabowo1937 sepemahaman saya, masih ada kemungkinan data hilang kalau begitu (si CDC /SDC gagal kirim karena network failure atau target Storage CDC / SDC mati)
masih belum paham studi kasus nya pa, jadi klo ada sebuah order yang di jadwalkan 1 jam, terus klo sebelum 1 jam udah ada payment, apakah akan tetap menunggu klo engga gimana methode nya di rabit mq nya ?
@@ProgrammerZamanNow kenapa perlu ada field "expired_date" itu pak? kenapa ga bisa dikonfirmasi aja saat pembayaran jadi ga butuh check2 expired date-nya lagi, saya kurang paham.
oalah jadi di deferpublish buat sweeping data yg gagal bayar di dalem consumernya. delay timenya bisa dynamic juga kalo gitu tergantung payment methodnya
@@abednegosteven-4423 gimana kalo gak dibayar2? kan stock barang butuh dibalikan lagi, masa nanti stock nya jadi gak bisa dibeli karena nunggu orang yang gak bayar2
@ProgrammerZamanNow sebelumnya saya masih 1 tahun pelajarin nodejs, jadi saya masih kurang paham bagaimana optimasi memorinya. nah yang saya tangkap tadi kurang optimalnya ketika prosesnya mati dan daftar event itu hanya tersimpan di memory ketika server restart daftar event itu akan hilang. pendekatan yang saya lakukan adalah ketika mendaftarkan event itu membawa datetime dan juga parameternya sembari menyimpan informasi ke database, ketika event yang terdaftar itu terpanggil oleh loop process maka dia juga menandai di database kalau event sudah dijalankan. dengan cara itu ketika server restart bisa kembali diinisialisasi ulang event yang belum dijalankan. pernah saya lakukan di project whatsapp gateway untuk saya sendiri. maaf kalau bahasanya banyak yang misleading karena saya selama ini tidak masuk ke komunitas pemrograman, dan hanya fokus bekerja sendiri 😅.
@@ProgrammerZamanNow dan itu juga saya lakukan karena saya sendiri user kere hore pak 😅. jadi manfaatin shared hosting murah yang ngedukung nodejs. kalau pakai vps ya besar kemungkinan memakai rabbitqt juga kalau ada project yang memungkinkan pakai delay event itu tadi.
@@ProgrammerZamanNow sorry, om. Setau saya default cronjob itu kalau Schedule Job. Mungkin ini yang dimaksud pakai Queue Job, jadi running nya pakai Supervisor. Tetep bahaya kah? Soalnya pernah implementasi RabbitMQ di Laravel cukup berdarah-darah. Karena belum official support 😅
kayaknya aman karena laravel quee bisa berjalan terpisah dengan worker dan data disimpan ke database tinggal pilih pakai driver yang mana misal mongodb. Untuk antisipasi saat server retstart bisa pakai supervisor
@@ProgrammerZamanNow kalau seperti case yg di video, apakah message yg tersimpan di datastore dan sudah melewati time expirednya langsung terpublish ketika datastorenya sudah up kembali?
@@ProgrammerZamanNow kalau misal kasusnya dibalik, pada saat datastore mengirim message yg timenya expired, namun aplikasinya mati, bagaimana solusinya? apakah di combine dgn pengecekan oleh cron yg running periodic? atau saat aplikasi up kembali, langsung menjalankan thread terpisah utk query dan mengupdate data yg expired timenya sudah lewat tadi?
padahal mah tinggal get 50 data / menit ( limit ), masukin ke db ( cron list ) trus eksekusi cron list / 50 data. Sesimpel itu logikanya. Aku aja mysql jt an aman make gini. mana PHP lagi wkwkwk
iyeeyy, sempet bingung soal cron dinamis begini
makasih vaporizel dah mewakili pertanyaan
makasih pak eko dah menjawab, ilmu baru
mantab, thanks ilmunya pak eko
mantap pak eko ilmunya
terimakasih mas!
kalau datanya udah fix dan sesuai jadwal running daily. Waktunya pindah ke cloud, contohnya aws eventbridge sebagai crontab nya dan lambda sebagai computenya. Lebih efisien dan tahan banting.
Tidak cost eficient
@@awikwok212 wkwkwk bener sih mas
Kalau di laravel pakai delay, dan queue-nya pakai redis, ada insight mas?
wah baru tau ada NSQ, biasanya kalo ga pake kafka ya rabbitmq 😁
bisa pake control M juga
Hmm.. aku coba browsing, kalo kayaknya Apache Kafka tidak memungkinkan untuk melakukan hal seperti itu..
Apakah ada teman teman yang pakai Kafka untuk achieve problem sejenis?
Kafka emang gak bisa
Bisa coba apache pulsar
kaget pas baca judulnya doang, ternyata selama ini bener pake cron karena gua cmn make buat fixed schedule
Sejak 2008 pake cronjob sampe skrng 😂
Emang saya yg kurng update
Kalo dynamic tapi delaynya bisa 1 bulan gimana pak? Apa rabbitmq bisa ngedelay sampe 1 bulan
Bisa, kan kayak nyimpen data aja
Ohh oke" makasih pak
tergantung case gan, kalau expiry_date format nya berupa tanggal 2025-01-15 better scheduling perhari aja.
Kl di NestJs sering pake Bull, itu ada delay job juga. kyknya mirip2 ya
sama aja dia juga sebagai message broker, nestjs juga bisa pakai rabbitmq atau kafka kok
@imamulikhlas704 yup betul juga mas
crontab lebih buat hal-hal yang terkait os atau script harian aja
baru tw solusinya skrng, padahal permasalahannya udh 3tahun yg lalu dan sudah g handle klien tsb. hahahaha😂
kalau dari data Order tersebut ada kebutuhan untuk analytics/data AI?
bisa ditambah logging kalo emang ada perubahan yg dinamis,, bisa juga kita capture perubahannya misal pake scd atau cdc
@@yunindyoprabowo1937 sepemahaman saya, masih ada kemungkinan data hilang kalau begitu (si CDC /SDC gagal kirim karena network failure atau target Storage CDC / SDC mati)
misal saat rabitmq kirim data, dan sialnya saat itu app mati. apakah di rabitmq ada system retry atau ilang gitu aja ya?
@@hooyah bantu jawab, ada
@@chapsaplayer3501 oh keren ya berarti. okeh om tengyu🙏
masih belum paham studi kasus nya pa, jadi klo ada sebuah order yang di jadwalkan 1 jam, terus klo sebelum 1 jam udah ada payment, apakah akan tetap menunggu klo engga gimana methode nya di rabit mq nya ?
Jadi pas event nya datang 1 jam, cek dulu ke db, kalo udah dibayar maka event nya di ignore
@@ProgrammerZamanNow kenapa perlu ada field "expired_date" itu pak? kenapa ga bisa dikonfirmasi aja saat pembayaran jadi ga butuh check2 expired date-nya lagi, saya kurang paham.
oalah jadi di deferpublish buat sweeping data yg gagal bayar di dalem consumernya.
delay timenya bisa dynamic juga kalo gitu tergantung payment methodnya
@@abednegosteven-4423 gimana kalo gak dibayar2? kan stock barang butuh dibalikan lagi, masa nanti stock nya jadi gak bisa dibeli karena nunggu orang yang gak bayar2
@@MySanzar betul
sepertinya untuk user nodejs tidak perlu terlalu khawatir karena js berbasis event jadi bisa bikin custom event sendiri.
tetep gak optimal, udah dijelasin di video
@ProgrammerZamanNow sebelumnya saya masih 1 tahun pelajarin nodejs, jadi saya masih kurang paham bagaimana optimasi memorinya.
nah yang saya tangkap tadi kurang optimalnya ketika prosesnya mati dan daftar event itu hanya tersimpan di memory ketika server restart daftar event itu akan hilang.
pendekatan yang saya lakukan adalah ketika mendaftarkan event itu membawa datetime dan juga parameternya sembari menyimpan informasi ke database, ketika event yang terdaftar itu terpanggil oleh loop process maka dia juga menandai di database kalau event sudah dijalankan. dengan cara itu ketika server restart bisa kembali diinisialisasi ulang event yang belum dijalankan. pernah saya lakukan di project whatsapp gateway untuk saya sendiri. maaf kalau bahasanya banyak yang misleading karena saya selama ini tidak masuk ke komunitas pemrograman, dan hanya fokus bekerja sendiri 😅.
@@ProgrammerZamanNow dan itu juga saya lakukan karena saya sendiri user kere hore pak 😅.
jadi manfaatin shared hosting murah yang ngedukung nodejs. kalau pakai vps ya besar kemungkinan memakai rabbitqt juga kalau ada project yang memungkinkan pakai delay event itu tadi.
sekarang jarang menggunakan CRONTAB
malah seneng pakai QUEUE Rabbit MQ,
apalagi kalau buat ngerjain payment processing
mo tanya juga mas kalo pake delayed message rabbitmq apakah bisa di delay lama seperti 1 bulan - 2bulan atau bahkan 3 tahun? terima kasih jawabannya
@@vaporizel maksimal 8.5 tahun
wohhh baru tau
Enakan pake jenkins dibanding crontab, kalo ada script yg gak jalan bisa ketauan.
@@johanindrapermana7328 di crontab juga bisa di cek di /var/log/cron
gw pake crontab bang wkwkwk 🤣 easy to install and maintain.
kalo di laravel pake jobs di kasih delay sesuai time expired gitu, aman kah ?
Jalanin job expire nya pake apa? Defaultnya pake cronjob tiap detik, bahaya
@@ProgrammerZamanNow biasanya pakai artisan queue di set ke supervisor
@@ProgrammerZamanNow sorry, om. Setau saya default cronjob itu kalau Schedule Job. Mungkin ini yang dimaksud pakai Queue Job, jadi running nya pakai Supervisor. Tetep bahaya kah? Soalnya pernah implementasi RabbitMQ di Laravel cukup berdarah-darah. Karena belum official support 😅
kayaknya aman karena laravel quee bisa berjalan terpisah dengan worker dan data disimpan ke database tinggal pilih pakai driver yang mana misal mongodb. Untuk antisipasi saat server retstart bisa pakai supervisor
nice to try, biasa pakai queue sama crontab wkwk
Kalo datastorenya mati, apakah dia akan retry?
Kayak database aja, kalo mati tinggal start ulang
@@ProgrammerZamanNow kalau seperti case yg di video, apakah message yg tersimpan di datastore dan sudah melewati time expirednya langsung terpublish ketika datastorenya sudah up kembali?
@@MihanFamily iya
@@ProgrammerZamanNow kalau misal kasusnya dibalik, pada saat datastore mengirim message yg timenya expired, namun aplikasinya mati, bagaimana solusinya?
apakah di combine dgn pengecekan oleh cron yg running periodic? atau saat aplikasi up kembali, langsung menjalankan thread terpisah utk query dan mengupdate data yg expired timenya sudah lewat tadi?
@@MihanFamily kalo belum di acknowledge sama app, data tidak akan dihapus
padahal mah tinggal get 50 data / menit ( limit ), masukin ke db ( cron list ) trus eksekusi cron list / 50 data. Sesimpel itu logikanya. Aku aja mysql jt an aman make gini. mana PHP lagi wkwkwk
tidak scalable ini mas
Mantap
Bikin kolom baru nama status, kasih nilai boolean:v
👍
Diagramnya pakai aplikasi apa pak?
Bantu jawab, Excalidraw
@zakichoiruddin5162 wah terima kasih sudah dijawab👍