Membagi worker proses nodeJS memakai message queue Apache Kafka (Part 1/2)

Message queue sebenarnya bukanlah produk baru lagi. Banyak metode dalam pembuatan konsumsi API. Seperti RPC (Remote Procedure Call), message queue, dan masih banyak istilah lainnya. Secara ringkas, terdapat perbedaan besar dimana message queue berjalan dengan asynchronous.

RPC-Request-Response-vs-Request-Reply

RPC-Request-Response-vs-Request-Reply

Sumber gambar : https://www.tigerteam.dk/wp-content/uploads/2014/04/RPC-Request-Response-vs-Request-Reply.png

Kali ini saya ingin share tentang penggunakaan message queue untuk memaksimalkan fitur async dari nodejs itu sendiri, terutama dalam pembuatan API.

Sekilas tentang keyword yang perlu diketahui adalah :

Apache Kafka

Adalah projek open-source bertindak sebagai message broker yang terdistribusi dengan baik menggunakan log. Dapat dilihat detailnya diwebsitenya http://kafka.apache.org/. Sebenarnya banyak message queue yang tersedia bebas, yang cukup populer lainnya seperti Rabbit MQ, Active MQ, Zero MQ, dan lainnya. Ada juga yang tersedia cloud, tidak perlu diinstal dimesin server seperti Iron MQ.

Berikut komparasi dari website http://www.warski.org/blog/2014/07/evaluating-persistent-replicated-message-queues/

Komparasi Message Queue

Komparasi Message Queue

Untuk throughput yang sangat tinggi, saya akhirnya memilih kafka, meskipun belum pernah Continue reading

Posted in Programming | Tagged , , , , , , , , | 5 Comments

Heritage Restaurant Huize Trivelli Jakarta

Beberapa bulan yang lalu, saya berkesempatan mencicipi salah satu restoran yang bernuansa klasik di Jakarta. Tempatnya cukup unik, tidak persis di pusat kota. Melainkan lebih ke daerah jarang ada restoran gede.

Restoran ini bernama Huize Trivelli. Lokasinya di cideng. Tepatnya di Jl. Ciujung No.36, Daerah Khusus Ibukota Jakarta 10160. Kalau teman-teman mau datang, bisa masuk dari arah slipi ke cideng, sebelum sampai sevel cideng, ada lorong kecil di kiri, nah lurus terus dari lorong tersebut ada simpang 4 kecil dan lurus sedikit sampai Continue reading

Posted in Kegiatan | Tagged , , , , , | Leave a comment

Setup development nodejs menggunakan vagrant

Pada kesempatan kali ini, saya mau share pengembangan aplikasi nodejs menggunakan vagrant. Pada tulisan sebelumnya, saya sudah sempat share garis besar nodejs. Jadi kali ini lebih ke environment vagrantnya saja.

Mengapa Vagrant?

Vagrant tersebut dapat dilihat di http://www.vagrantup.com/ . Vagrant diciptakan untuk isolasi lingkungan development agar proses deployment pada sistem production sama persis pada pengembangan environment development. Dengan begitu hanya sedikit maintenance apabila sistem yang kita buat, siap untuk di-live-kan. Cost dan effort maintenance sangat besar apabila banyak perbedaan untuk environment antara sistem production (live) dan development.

Poin plus lainnya, apabila ada engineer baru bergabung, tidak perlu banyak effort untuk menginstall software2 development pada komputer mereka, cukup copy-kan file image box vagrantnya saja. Atau bisa juga untuk engineer lama, agar 1 jenis environment semua, tidak ada istilah “kok di saya jalan, tapi kamu ngga” hehe…

Sebenarnya isolate environment cukup banyak jenisnya. Tools yang terkenal lainnya adalah Docker (https://www.docker.com) . Situs-situs banyak membahas tentang perbedaan Vagrant dan Docker dapat diakses di http://www.quora.com/What-is-the-difference-between-Docker-and-Vagrant-When-should-you-use-each-one atau http://stackoverflow.com/questions/16647069/should-i-use-vagrant-or-docker-io-for-creating-an-isolated-environment . Vagrant sendiri terdiri dari Continue reading

Posted in Programming | Tagged , , , , , , , | 1 Comment

Pendekatan dan Optimasi Struktur Aplikasi NodeJS

Setelah sekian lama tidak ngeblog lagi. Akhirnya saya beranikan membuat tulisan ini. Mungkin agak sedikit teknis, berhubung saya baru belajar nodejs juga, kurang lebih sekitar 9 bulanan, saya mendapat cukup banyak pola pikir yang berbeda untuk nodejs ini. Dikarenakan tuntutan pekerjaan saya yang sekarang, saya berkesempatan mencoba fenomenal nodejs ini. Mungkin bukan best practice tapi saya yakin saya berusaha mendapat referensi terbaik dari berbagai sumber untuk belajar.

Node js sendiri sebenarnya bukan baru lagi untuk bahasa/ scripting/ server side language/ apa namanya si hehe :) .
Situs resmi nodejs ada di https://nodejs.org/ . Untuk menginstallnya tergantung OS nya sendiri (windows/linux/mac).
Mungkin teman-teman sudah cukup paham apa itu nodejs, jadi saya tidak menjelaskan lebih rinci untuk definisinya sendiri :).
Tapi kemampuan nodejs ini yang paling saya suka adalah asynchronous (non-blocking IO) atau bahasa halusnya tidak memblok alur utama program dari input hingga output (CMIIW untuk bahasa saya :) )

Nodejs ini membuat software developer menjadi mind-blown untuk control flownya (non-blocking) karena cukup berbeda dengan sequential programming yang harus berurutan menunggu eksekusi dari atas hingga kebawah line coding.

Langsung saja ke agak teknisnya. Continue reading

Posted in Programming | Tagged | Leave a comment

Liburan singkat ke kota tua, museum bank indonesia, dan museum fatahillah

Kemarin Rabu, tepatnya tanggal 15 Oktober 2014, aku masih masa-masa cuti untuk pindah kerja baru. Jadi dipikir, liburan dalam kota saja lah. Aku berencana ke kota tua dengan pacar saya. Liburan ini agak dadakan, ya dihitung-hitung sekedar mengisi waktu luang saja. Refresh our minds.

Kita makan siang dulu agar cukup energi untuk jalan-jalan. Akhirnya kita berangkat jam 11 dari kos. Rutenya parkir motor di Central Park Mal, dan naik busway dari halte Podomoro City ke Harmoni. Selanjutnya dari Harmoni transit ke Stasiun Kota. Tidak cukup ramai juga, karena hari kerja. Di Podomoro City, kami menunggu 10 menit. Kemudian dari harmoni ke stasiun kota, buswaynya cukup sering juga.

Kita tiba di stasiun kota, berencana langsung saja ke Museum Bank Indonesia. Jadwal buka museum adalah sbb
Senin dan hari libur nasional : Tutup
Selasa – Kamis : 08.00 – 15.30
Jumat : 08.00 – 11.35 dan dibuka lagi 13.00 – 15.30, dikarenakan sholat Jumat (Friday Prayer)
Sabtu – Minggu : 08.00 – 16.00

Jadwal Buka Museum Bank Indonesia

Jadwal Buka Museum Bank Indonesia

Berikut tiketnya, harganya gratis / free. Tiketnya masuknya Continue reading

Posted in Kegiatan | Tagged , , , | Leave a comment

Pemesanan kereta api di Tiket.com


Saya akan memberi penjelasan sedikit untuk pemesanan kereta api di Tiket.com . Berhubung saya sendiri adalah mantan crew utama kereta api di Tiket.com hehe :) . Menu kereta api sendiri di Tiket.com sudah live kurang lebih hampir 2 tahun (sampai tulisan ini dibuat).

Sejarah Penjualan Kereta Api di Tiket.com
Saya mau sharing sedikit tentang penambahan 1 menu “kereta api” di Tiket.com. Ceritanya begini, bisa dibilang dari awal terbentuknya
menu kereta api, saya sudah ada dalam membuat kode-kode dasar bangunannya dibantu Mr. Natali Ardianto selaku Chief Technology Officer Tiket.com .

Tepatnya sekitar April 2012, kita (Tiket.com) sudah “melobi” dan mendapatkan izin untuk melakukan pengembangan channel dari PT Kereta Api Indonesia (Persero) untuk menjadi partner online pertama mereka.

Fitur kereta api di Tiket.com ini diantaranya adalah
1. Dapat melakukan pemesanan / booking online hingga pembayaran
2. Instan voucher yang didapat via email setelah pembayaran, dapat langsung ditukarkan dengan tiket fisik KAI di loket dengan membawa kartu identitas lengkap untuk masing-masing penumpang
3. Pilihan untuk melihat dan mengubah Continue reading

Posted in Kegiatan, Programming | Tagged , , , , | 31 Comments

Sikap Kelinci dan Artinya

Ingatlah bahwa kelinci memang tidak bersuara ketika dia lapar, haus, sakit, atau takut.  Dia tetap diam dan biasa-biasa saja. Jika anda memperhatikan kelinci anda, anda akan melihat bahwa kelinci juga berkomunikasi, baik dengan sesama kelinci, hewan peliharaan yang lain (biasanya kucing) dan juga dengan anda.

 

Di bawah ini ada sedikit terjemahan dari bahasa tubuh kelinci:

  Continue reading

Posted in Kegiatan | Tagged | 1 Comment

Angkutan Murah ke Bandara Naik Damri di Slipi Petamburan ke Bandara Soekarno Hatta

Tadi siang sekitar pukul 11.30 saya mencoba angkutan kebandara, karena aku tahu kalau naik taksi dari binus ke bandara cukup mahal, kurang lebih 80-100 ribu sekali jalan.

Berhubung penasaran, jadi aku langsung saja tunggu di simpang slipi petamburan (simpang slipi palmerah). Kata orang disana banyak damri lewat kebandara. Aku jg kalau tidak salah pernah melihat damri sering berhenti.

Banyak website bilang katanya kita harus cepat mencegat Continue reading

Posted in Kegiatan | Tagged , , , , , , , , | 20 Comments

Punya anggota projek website lebih dari dua orang? Gunakan GIT

Ketika mengetahui cara kerja GIT, aku terinspirasi untuk membagikan tulisan yang sederhana ini. Meski aku belum mempelajari tentang GIT yang lebih mendalam, tapi setidaknya aku ingin menjelaskan tools yang sangat berguna ini tersenyum lebar.

Tulisan ini ditujukan bagi teman-teman binusian juga terutama yang sering mengikuti kompetisi web programming, mengerjakan projek web developer, ataupun yang berhubungan dengan website. GIT sangat berguna apabila anggota tim lebih dari 1 orang yang mengerjakan projek bersamaan. Karena aku baru mengetahui GIT, terutama dapat digunakan untuk bahasa PHP, maka aku hanya membatasi tulisan ini khusus untuk Continue reading

Posted in Programming | Tagged , | 6 Comments

Menguangkan voucher delay batavia

Tidak disangka sejak naik pesawat batavia air, baru kali ini delaynya sangat lama ngambek. Tepatnya tanggal 18 maret 2012. Di tiket penerbangannya ditulis 18 maret 2012 berangkat pukul 12.35. Pesawat yang ditujukan berangkat dari jambi (DJB) ke jakarta (CGK). Aku berangkat dari rumah jam 11 karena check-in tertulis jam 11.30. Maklum jarak dari rumah ke bandara sekitar 10 menit soalnya jambi gak gitu jauh-jauh amat…

Sesampainya dibandara, langsung checkin, karena tidak ada bagasi (cuma tas ransel), aku langsung pergi ke ruang tunggu, tapi ya membayar asuransi dulu 25 ribu, gak semahal jakarta ke jambi 40 ribu menjulurkan lidah. Aku juga heran kenapa bisa beda gitu harganya. Pas check in sih orangnya bilang delay 1 jam. Yah biasalah…

Ditunggu sampai setengah 2 ternyata Continue reading

Posted in Kegiatan | Tagged , | 2 Comments