Streaming peristiwa adalah praktik menangkap data real-time dari aplikasi, basis data, dan perangkat IoT dan mengirimkannya ke berbagai tujuan untuk pemrosesan dan penyimpanan langsung, atau untuk analisis real-time dan pelaporan analitik.
Sebagai fungsi utama dalam Pemrosesan Streaming Peristiwa (ESP), streaming peristiwa memungkinkan infrastruktur TI untuk menangani aliran peristiwa yang besar dan terus menerus dengan memproses data saat peristiwa atau perubahan terjadi.
Streaming peristiwa sering kali berfungsi sebagai pelengkap pemrosesan batch, yang bekerja pada kumpulan data statis yang besar (atau “data yang tidak aktif”). Namun, alih-alih memproses data dalam batch, streaming acara menangani titik data tunggal saat muncul. Pendekatan ini memungkinkan perangkat lunak dalam arsitektur untuk menafsirkan dan merespons aliran data (“data bergerak”) secara real time.
Layanan streaming peristiwa berkinerja tinggi dapat mendukung berbagai tugas sederhana dan kompleks, mulai dari mengirim pemberitahuan saat stok atau harga produk berubah hingga membangun model machine learning real-time yang mendeteksi aktivitas pengguna yang mencurigakan. Bahkan dalam kasus pemrosesan batch, streaming peristiwa dapat menambah kedalaman analisis data dengan menghubungkan peristiwa dengan stempel waktu masing-masing. Hal ini juga membantu mengidentifikasi tren historis, memberikan insight yang berharga dari waktu ke waktu.
Streaming peristiwa berkisar pada aliran catatan data yang tidak terbatas, berurutan, dan real-time, yang disebut "peristiwa”, struktur data dasar yang merekam kejadian apa pun di sistem atau lingkungan. Ini adalah istilah yang pada dasarnya mengacu pada setiap titik data dalam sistem. Oleh karena itu, “aliran” (juga disebut aliran data atau data streaming) adalah pengiriman berkelanjutan dari peristiwa tersebut.
Setiap peristiwa biasanya memiliki kunci yang mengidentifikasi peristiwa atau entitas terkait, serta nilai yang menyimpan data aktualnya. Peristiwa juga mencakup stempel waktu yang menunjukkan kapan peristiwa terjadi atau dicatat, dan terkadang metadata tentang sumber data, versi skema, atau atribut lainnya.
Dengan bantuan mesin pengolah stream khusus, peristiwa dapat mengalami beberapa proses berbeda dalam stream. “Agregasi” melakukan perhitungan data, seperti rata-rata, jumlah, dan standar deviasi. “Ingestion” menambahkan data streaming ke database. Pemrosesan analisis menggunakan pola dalam streaming data untuk memprediksi kejadian di masa depan, dan pemrosesan pengayaan menggabungkan titik data dengan sumber data lain untuk memberikan konteks dan menciptakan makna.
Peristiwa sering kali terkait dengan operasi bisnis atau proses navigasi pengguna dan biasanya memicu tindakan, proses, atau rangkaian peristiwa lain. Ambil perbankan online, sebagai salah satu contoh.
Ketika pengguna mengklik “transfer” untuk mengirim uang dari satu rekening bank ke rekening bank lain, dana ditarik dari akun pengirim dan ditambahkan ke rekening bank penerima. Pemberitahuan email atau SMS dikirim ke salah satu (atau kedua) pihak, dan jika perlu, protokol pencegahan keamanan dan penipuan diterapkan.
Acara adalah komponen utama dari streaming acara. Namun, satu set komponen lain memungkinkan layanan streaming untuk memproses acara secepat dan efektif seperti yang mereka lakukan. Komponen vital lainnya meliputi:
Broker, atau broker pesan, adalah server yang menjalankan platform streaming peristiwa. Broker pesan memungkinkan aplikasi, sistem, dan layanan untuk berkomunikasi satu sama lain dan bertukar informasi. Server ini mencapai fungsi ini dengan mengonversi pesan antara protokol pesan formal. Hal ini memungkinkan layanan yang saling bergantung “untuk berbicara” satu sama lain secara langsung, meskipun ditulis dalam bahasa yang berbeda (Java atau Python, misalnya) atau diimplementasikan pada platform yang berbeda. Server ini juga memfasilitasi pemisahan proses dan layanan dalam sistem.
Broker dapat memvalidasi, menyimpan, merutekan, dan mengirimkan pesan ke tujuan yang sesuai. Dalam sistem streaming peristiwa terdistribusi, broker memastikan latensi rendah dan ketersediaan tinggi dengan mereplikasi peristiwa di beberapa node. Broker juga dapat membentuk kluster —kumpulan broker yang bekerja sama untuk penyeimbangan beban dan skalabilitas yang lebih mudah.
Topik adalah kategorisasi atau nama feed yang digunakan untuk mempublikasikan peristiwa, yang menyediakan cara untuk mengatur dan memfilter peristiwa di dalam platform. Topik bertindak sebagai "subjek" untuk peristiwa, sehingga konsumen dapat berlangganan topik dan hanya menerima peristiwa yang relevan.
Topik dapat dibagi lebih lanjut ke dalam beberapa partisi, sehingga beberapa konsumen dapat membaca dari sebuah topik secara bersamaan tanpa mengganggu urutan setiap partisi.
Offset adalah pengenal unik untuk setiap peristiwa dalam partisi, yang menandai posisi peristiwa dalam urutan. Konsumen menggunakan offset untuk mengatur peristiwa yang telah mereka proses. Jika, misalnya, konsumen memutuskan koneksi dari sebuah peristiwa dan kemudian menyambung kembali, maka acara tersebut dapat melanjutkan pemrosesan dari offset terakhir yang diketahui.
Mengingat proliferasi data—dan lonjakan lalu lintas data yang diakibatkan—streaming acara merupakan komponen penting dari arsitektur data modern. Ini sangat berharga di lingkungan yang membutuhkan kemampuan pengambilan keputusan secepat kilat atau dalam organisasi yang bertujuan untuk mengotomatiskan tanggung jawab pengambilan keputusan.
Berikut cara layanan streaming peristiwa mengelola data peristiwa:
Selain streaming dan pemrosesan standar, platform streaming peristiwa—seperti Amazon Kinesis, Google Pub/Sub, Azure Event Hubs, dan IBM® Event Automation—mendukung berbagai praktik streaming yang meningkatkan fungsionalitas. IBM® Event Automation khususnya memanfaatkan kemampuan pemrosesan Apache Kafka sebagai platform sumber terbuka untuk mengoptimalkan alur kerja berbasis peristiwa.
Semantik pengiriman exactly-once memastikan bahwa setiap peristiwa dalam stream diproses tepat sekali, sebuah fitur penting untuk mencegah duplikasi dan peristiwa stream yang hilang. Sebagian besar sistem streaming peristiwa menyertakan mekanisme untuk menyediakan semantik exactly-once, terlepas dari kegagalan di tempat lain dalam sistem.
Ketika komponen hilir tidak dapat mengimbangi laju kejadian yang masuk, tekanan balik mencegah stream membanjiri sistem. Dengan tekanan balik, sebuah mekanisme kontrol aliran data, konsumen dapat memberi sinyal kepada produsen untuk mengurangi atau menghentikan produksi data ketika mereka kewalahan dalam memproses data atau tidak dapat mengikuti peristiwa yang masuk.
Proses ini memungkinkan sistem menangani beban kerja dengan anggun dengan menyangga atau menjatuhkan peristiwa masuk—alih-alih mengganggu seluruh sistem—sehingga pemrosesan peristiwa tetap stabil saat beban kerja berfluktuasi.
Konsumen peristiwa sering kali bekerja sebagai bagian dari kelompok konsumen untuk mempercepat konsumsi peristiwa. Setiap konsumen dalam grup konsumen diberi subset partisi untuk diproses, sehingga konsumsi dapat diparalelkan demi efisiensi yang lebih baik. Jika satu konsumen dalam grup gagal atau perlu ditambahkan atau dihapus, platform dapat secara dinamis menetapkan kembali partisi untuk menjaga keseimbangan dan toleransi kesalahan.
Streaming peristiwa sering berarti memproses data dengan cara yang sensitif terhadap waktu. Watermarking memungkinkan pelacakan kemajuan (dengan menggunakan waktu peristiwa) dalam sistem pemrosesan aliran. Ini memberlakukan ambang kelengkapan yang menunjukkan kapan sistem dapat mempertimbangkan data peristiwa diproses sepenuhnya. Penandaan air juga dapat berguna untuk memastikan akurasi dalam pemrosesan berbasis waktu dan untuk merekonsiliasi peristiwa yang tidak berurutan.
Sebagian besar platform streaming peristiwa menawarkan kebijakan retensi data yang dapat disesuaikan yang memungkinkan pengembang mengontrol berapa lama peristiwa tersedia untuk dikonsumsi. Pemadatan data, sementara itu, adalah proses yang menghapus data yang redundan atau usang dari topik, menjaga jejak penyimpanan tetap minimal sambil mempertahankan data penting.
Perlu dicatat, sekali lagi, bahwa arsitektur streaming standar biasanya memisahkan produsen peristiwa, perantara peristiwa, dan konsumen, sehingga komponen dapat diskalakan dan dipelihara secara independen.
Streaming peristiwa merupakan konsep penting yang memungkinkan organisasi menggunakan data saat data tersebut dihasilkan, sehingga menciptakan sistem yang lebih responsif dan cerdas. Dengan meningkatnya pengambilan keputusan berbasis data, streaming peristiwa menjadi komponen yang makin penting dalam arsitektur perangkat lunak modern.
Oleh karena itu, teknologi streaming acara memiliki berbagai contoh penggunaan di seluruh sektor bisnis, termasuk:
Institusi keuangan dapat menggunakan layanan streaming peristiwa untuk memproses data pasar secara real time, sehingga memungkinkan sistem trading algoritmik membuat keputusan sepersekian detik berdasarkan kondisi pasar terkini. Kemampuan pemantauan real-time streaming peristiwa juga membantu institusi dengan cepat mengidentifikasi dan mengatasi risiko penipuan dan keamanan.
Streaming peristiwa dapat memfasilitasi optimalisasi rantai pasokan dengan memungkinkan produsen melacak bahan dan produk saat bergerak melalui rantai pasokan untuk mengidentifikasi kemacetan dan inefisiensi proses. Selain itu, dengan mengalirkan data dari sensor IoT/IIoT pada mesin, manajer dapat memprediksi kapan dan mengapa peralatan mungkin gagal dan melakukan pemeliharaan preventif atau pemeliharaan prediktif untuk menghindari waktu henti yang tidak direncanakan.
Platform game online dapat menggunakan layanan streaming peristiwa untuk melacak tindakan pemain dan perubahan status game, yang dapat digunakan untuk menjalankan analisis game, menegakkan kebijakan anti-kecurangan, dan meningkatkan keterlibatan pemain. Platform streaming dapat memanfaatkan data peristiwa untuk memberikan rekomendasi konten yang dipersonalisasi bagi pengguna dan menciptakan pengalaman pelanggan yang disesuaikan.
Streaming peristiwa dapat digunakan untuk melacak lokasi dan status kendaraan, memungkinkan perutean waktu nyata berdasarkan kondisi lalu lintas, jadwal pengiriman, dan kinerja kendaraan. Perusahaan logistik juga dapat menggunakan data peristiwa dari perangkat pemindaian dan pelacak GPS untuk memberikan informasi terkini kepada pelanggan tentang status pengiriman ecommerce mereka.
Di luar industri yang spesifik, streaming peristiwa juga dapat berguna ketika digunakan bersama dengan teknologi dan arsitektur lainnya. Misalnya, streaming peristiwa terkadang dikaitkan dengan pola seperti sumber peristiwa dan pemisahan tanggung jawab kueri perintah (CQRS).
Pengadaan peristiwa adalah pola arsitektur di mana perubahan status aplikasi disimpan sebagai urutan peristiwa. Digunakan bersama event streams, sumber peristiwa memungkinkan sistem streaming untuk memutar ulang peristiwa ini untuk merekonstruksi status entitas pada titik waktu mana pun atau untuk menggerakkan komponen sistem lainnya.
Dalam pola arsitektur CQRS, sistem dibagi menjadi dua model yang berbeda: satu yang menangani perintah (menulis) dan satu lagi yang menangani kueri (membaca). Streaming peristiwa dapat digunakan dalam CQRS untuk menyebarkan perubahan dari model tulis ke model baca secara real time, sehingga memungkinkan integrasi asinkron di antara keduanya.
Streaming peristiwa juga merupakan teknologi dasar untuk membangun arsitektur berbasis peristiwa.
Arsitektur yang digerakkan oleh peristiwa memungkinkan komponen yang digabungkan secara longgar untuk berkomunikasi melalui peristiwa. Alih-alih menerbitkan aliran acara ke broker, ia menerbitkan acara tujuan tunggal yang dapat digunakan aplikasi atau layanan lain untuk melakukan tindakan secara bergantian. Kekuatan pemrosesan in-stream yang disediakan oleh arsitektur berbasis peristiwa—digunakan bersama dengan kemampuan streaming peristiwa—dapat memungkinkan bisnis untuk merespons data yang bergerak dan membuat keputusan cepat berdasarkan semua data saat ini dan historis.
Dalam beberapa tahun terakhir, penyedia cloud (termasuk IBM Cloud) telah mulai menawarkan prinsip-prinsip streaming peristiwa sebagai layanan. Streaming peristiwa sebagai layanan memudahkan bisnis untuk mengadopsi streaming peristiwa tanpa mengelola seluruh infrastruktur yang mendasarinya, sehingga makin memperluas contoh penggunaan streaming peristiwa.
IBM Event Automation adalah solusi yang dapat disusun untuk membantu mempercepat upaya yang digerakkan oleh peristiwa bisnis dengan kemampuan distribusi, penemuan, dan pemrosesan peristiwa.
Bergerak melampaui otomatisasi tugas sederhana untuk menangani proses dengan profil tinggi, yang berhadapan langsung dengan pelanggan, dan menghasilkan pendapatan dengan adopsi dan skala bawaan.
Temukan cara AI untuk operasi TI memberikan insight yang Anda butuhkan untuk membantu mendorong kinerja bisnis yang luar biasa.