# Kolektor

Kolektor odpowiada za przyjmowanie i przechowywanie danych wejściowych. Udostępnia interfejs widoczny publicznie przez HTTPS, który wymaga autoryzacji poprzez użycie tokenów wygenerowanych przez SSO Oktawave. Dane przyjęte przez moduł są przekazywane do specjalnych kolejek zwanych topikami, zgodnie ze skonfigurowanymi regułami routingu, i są przechowywane trwale przez określony czas zwany retencją danych, po tym czasie są trwale usuwane. Przechowywanie niweluje ryzyko utraty danych w momencie awarii. Dane znajdujące się w Topiku mogą zostać odebrane przez moduł procesora i przetworzone.

Ilość danych którą może przyjąć kolektor jest ograniczona ze względu na rozmiar i ilość zapytań mierzonych w danych okresie czasu (np.: 1000req/s, 1MB/s). Kolektor posiada opcjonalną funkcję autoskalowania, która pozwala na zwiększanie przepustowości w momentach większego obciążenia i zmniejszenie gdy ruch jest mniej intensywny.

Podstawową jednostką danych dostarczanych do Topiku jest wiadomość (Message), która może zawierać dowolne dane binarne. Moduł kolektora posiada też rozbudowany system routingu wiadomości.

Moduł składa się z trzech elementów: Kolektor API, Apache Kafka i Apache Zookeeper.

  • Kolektor API - Udostępnia interfejs wejściowy usługi. Odpowiada za autoryzację połączeń w SSO Oktawave i routing wiadomości do odpowiednich Topików.
  • Apache Kafka - Implementuje mechanizm zarządzania i obsługi Topików, ich dystrybucji i partycjonowania, a także retencji danych.
  • Apache Zookeeper - Wykorzystywany wewnętrznie przez Kafkę w celach konfiguracyjnych i service discovery