Объединение тем кафки в одну тему родитель-ребенок / ребенок / ребенок - PullRequest
0 голосов
/ 10 сентября 2018

Вот ситуация: у меня есть несколько тем kafka, которые содержат сообщения, соответствующие детям, и другая тема с сообщениями, соответствующими родителю.Все они, как правило, будут написаны в одно мгновение, но я не могу этого гарантировать.Цель состоит в том, чтобы взять эти темы и в более или менее реальном времени создать новый поток, в котором родители и дети склеены.Конечно, о существовании и количестве детей заранее неизвестно, что затрудняет понимание того, получили ли мы все.Я не знаком с Kstreamsm, но кажется, что это хороший вариант, но что, если новый дочерний элемент обнаружится гораздо позже?

Представьте, что родительская тема - транзакция транзакции и содержит сообщения, которые выглядят следующим образом:

{headerID: 1234, storeID: 100, txnDate: "2018-09-10"}

А потом детские темы, подобные этим: подробности:

{headerID: 1234, detaiID: 1234567, productID: 7777, txnAmount: 9.99}
{headerID: 1234, detaiID: 1234568, productID: 8888, txnAmount: 7.99}
{headerID: 1234, detaiID: 1234569, productID: 9999, txnAmount: 5.49}

тендеры:

{headerID: 1234, tenderID: 34567, tenderType: "AMEX"}
{headerID: 1234, tenderID: 34568, tenderType: "Gift Card"}

И желаемый результат примерно такой:

{headerID: 1234 storeID: 100, txnDate: "2018-09-10", 
 details: [{detaiID: 1234567, productID: 7777, txnAmount: 9.99},
           {detaiID: 1234568, productID: 8888, txnAmount: 7.99},
            detaiID: 1234569, productID: 9999, txnAmount: 5.49}]
 tenders: [{tenderID: 34567, tenderType: "AMEX"},
           tenderID: 34568, tenderType: "Gift Card"}]}

На первый взгляд, это кажется довольно простой проблемой и распространенным случаем, но есть ли лучший способ делать подобные вещи в мире типа кафки?

...