Вот ситуация: у меня есть несколько тем 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"}]}
На первый взгляд, это кажется довольно простой проблемой и распространенным случаем, но есть ли лучший способ делать подобные вещи в мире типа кафки?