Używasz Apache Kafka jako rozproszonej i niezawodnej kolejki, która może obsługiwać duże ilości danych i umożliwia przekazywanie wiadomości z jednego punktu końcowego do drugiego.
Storm nie jest kolejką. Jest to system, który ma rozproszone możliwości przetwarzania w czasie rzeczywistym, co oznacza, że można równolegle wykonywać wszelkiego rodzaju manipulacje na danych w czasie rzeczywistym.
Wspólny przepływ tych narzędzi (o ile wiem) wygląda następująco:
system-czasu rzeczywistego -> Kafka -> Storm -> NoSql -> BI (opcjonalnie)
Więc masz aplikację czasu rzeczywistego obsługującą dane o dużej objętości, wysyła je do kolejki Kafka. Storm pobiera dane z kafki i stosuje pewne wymagane manipulacje. W tym momencie zazwyczaj lubisz czerpać korzyści z tych danych, więc albo wysyłasz je do jakiejś bazy danych Nosql w celu wykonania dodatkowych obliczeń BI, albo możesz po prostu zapytać o to NoSql z dowolnego innego systemu.