Tag

, ,

Beberapa hari terakhir ini saya ngoprek koding. Saya membuat sebuah program – lebih tepatnya kumpulan skrip – yang melakukan query ke twitter dan mengambil informasi mengenai user dan follower-nya. Sebuah twitter crawler. Awalnya skrip ini ditulis dalam bahasa Python oleh beberapa orang. Karena skripnya kadang crash tanpa saya ketahui di mana masalahnya, akhirnya saya tulis ulang idenya dalam bentuk Perl script. Saya lebih familier dengan Perl🙂

Pada akhirnya saya memiliki beberapa skrip Perl, database dengan MongoDB dan flat file (Perl Tie::File), dan seterusnya. Singkatnya program berjalan sesuai dengan apa yang saya inginkan. Hanya saja sekarang bentuknya adalah skrip-skrip yang mengimplementasikan satu fungsi tertentu. Mereka bukan sebuah program yang monolitik. Komunikasi antar skrip ini melalui file. Tentu saja ini menjadi tidak efisien, tetapi bagusnya bisa saya debug di setiap tahap.

Proof of concept sudah jadi. Sekarang program ini seharusnya dibersihkan, yaitu ditulis ulang :)  Kemungkinan besar dia harus didesain dengan konsep distributed, bukan lagi dari satu program.

Selain itu ternyata ada beberapa kendala. Kendala utama adalah adanya batasan dari twitter untuk mengakses sistemnya. Ada batas jumlah akses per satuan waktu (rate limiting). Akibatnya jumlah query yang saya inginkan tidak tercapai. Terpikir oleh saya untuk melakukan query secara paralel. Artinya akses ke database pun harus dilakukan secara paralel. Hal yang terbayang oleh saya adalah menggunakan queue seperti rabbitmq. Yang ini mesti belajar lagi.

Tambahan lagi, saya melihat bahwa database MongoDB pun masih dapat diperbaiki lagi dengan graph database seperti Neo4j. Belum lagi saya melihat flockDB yang dikembangkan oleh Twitter. Artinya masih banyak hal yang harus dipelajari. Semakin banyak belajar, semakin tahu bahwa makin banyak lagi yang harus dipelajari. Wah.