Streaming Golang News Channel menggunakan Apache Flume, NATS dan Telegram. (Bagian ke-1)

Dimas Yudha Prawira
3 min readApr 19, 2019

--

Pada kesempatan kali ini gw mau sharing tentang pembuatan sistem streaming untuk melakukan stream berita atau informasi seputar Go atau GoLang yang didapat dari sosial media twitter.

Sebelum kita berbicara mengenai bagaimana membuat sistemnya, tidak ada salahnya kita coba mengetahui terlebih dahulu apa itu sosial media.

Sosial media adalah sebuah media untuk bersosialisasi satu sama lain dan dilakukan secara online yang memungkinkan manusia untuk saling berinteraksi tanpa dibatasi ruang dan waktu (sumber : https://www.unpas.ac.id/apa-itu-sosial-media/).

Sosial media dapat dikelompokkan menjadi beberapa bagian besar yaitu :

1. Social Networks, media sosial untuk bersosialiasi dan berinteraksi (Facebook, myspace, hi5, dan lainnya).

2. Discuss, media sosial yang memfasilitasi sekolompok orang untuk melakukan obrolan (chat) dan diskusi (GTalk, Hangout, Skype, dan lainnya).

3. Share, media sosial yang memfasilitasi sekelompok orang untuk saling berbagi file, video, music dan lainnya (youtube, slideshare, feedback, flickr dan lainnnya).

4. Publish, media sosial untuk memfasilitasi orang berbagi karya tulis (blog, digg, medium dan lainnnya).

5. Livecast, (livecastr, Podcast dan lainnya).

6. Micro blog, (twitter, plurk, pownce dan lainnya).

Pada tulisan ini gw memilih sosial media micro blog terpopuler yaitu twitter (https://twitter.com/) yang digunakan sebagai target (source) streaming informasi.

Tools yang digunakan untuk mengambil data dari twitter pada tulisan kali ini adalah Flume (https://flume.apache.org/). Flume bertugas melakukan pengambilan data dari twitter dan selanjutnya akan dikirim ke message platform. Messaging platform yang akan digunakan pada tulisan ini adalah NATS (https://nats.io/)

twitter — flume dan NATS

Data yang di-stream ke NATS selanjutnya akan di-consume oleh NATS client. NATS client ini adalah aplikasi berbasis Golang dan fungsi dari aplikasi ini sebagai berikut :

  1. Filtering
  2. Reformatting
  3. Telegram Client App

Kita coba kupas satu persatu dari fungsi tersebut.

  1. Filtering, data yang diambil oleh flume dari sumber (source) mungkin akan ada hasil yang tidak sesuai, fungsi dari NATS client ini untuk melakukan filterisasi data yang tidak sesuai berdasarkan dari tulisan, apakah ada tulisan yang mengandung “Golang” atau “Go” atau “Go programming language”, dsb. Jika tidak ada, maka data akan di drop atau diabaikan.
  2. Reformatting, data yang diambil dari NATS akan menggunakan struktur format flume, sebelum data dilanjutkan push ke Telegram channel, terlebih dahulu data tersebut akan dilakukan pem-format-an sehingga datanya menjadi data yang mudah dibaca oleh pengguna (human-readible).
  3. Telegram Client App, selain mempunyai fungsi yang sudah dijelaskan sebelumnya, aplikasi ini juga bertindak sebagai aplikasi klien chat platform Telegram.

Dari penjelasan tersebut, maka visualisasi end-to-end dari arsitekturnya sebagai berikut :

Pada bagian ke-2 (selanjutnya), kita akan membahas tahapan-tahapan instalasi dan konfigurasi dari sistem ini.

Stay tunned..

Silahkan subscribe atau join Telegram channel https://t.me/golang_news_channel untuk mendapatkan informasi terbaru mengenai teknologi Go setiap minggunya.

--

--

Dimas Yudha Prawira

Open Source enthusiast and contributor, @java @gophers @erlanger @embedded, spare-time writer and full-time coder, working as Ordinary Engineer