Awalnya, perusahaan hanya memiliki satu sistem pengirim data (Source System) dan satu sistem penerima data (Target System). Tugas Source System adalah mengirimkan data ke Target System. Karena hanya ada satu Source System dan satu Target System, maka alur kerjanya cukup sederhana seperti yang terlihat pada gambar di sebelah. Hal tersebut terlihat sangat sederhana dan mudah dipahami.
Seiring berjalanya waktu, jumlah Source System dan juga Target System pun bertambah. Setiap Source System harus mengirim data ke semua Target System. Hal ini menyebabkan flow data menjadi semakin rumit seperti gambar di atas.
Selain jumlah integrasi data, ada beberapa faktor yang memperumit flow data yaitu :
Protokol (TCP, HTTP, REST, FTP, JDBC β¦)
Format data (Binary, CSV, JSON, Avro, Protobufβ¦)
Data schema
Untuk mempermudah integrasi data kita dapat menggunakan Apache Kafka, dimana Source System akan melakukan publish data (mengirim data) ke Apache Kafka. Kemudian Target system akan melakukan subscribe data (mengambil data) ke Apache Kafka.