---
# System prepended metadata

title: Тестове завдання (HTTP+Kafka)

---

# Тестове завдання (HTTP+Kafka)

Написати HTTP сервіс для фільтрації повідомлень з Kafka. Користувач може додати фільтр і система починає запам'ятовувати всі нові повідомлення, що підходять під нього, щоб пізніше повернути їх по запиту.

Припущення:

- в топіках текстові, а не бінарні дані (просто строки або JSON)
- топіки мають один partition
- "фільтр" це регістронезалежний пошук підстроки в повідомлення
- відфільтровані повідомлення можна накопичувати в пам'яті процесу, не перекладаючи в окрему базу

API має виглядати так:

1. Додати новий фільтр

```
POST /filter
{"topic": "books", "q": "sicp"}
```

2. Отримати список всіх існуючих фільтрів

```
GET /filter
```

3. Отримання всіх відфільтрованих повідомлень з моменту створення фільтра

```
GET /filter?id=1
```

4. Видалення фільтра

```
DELETE /filter?id=1
```

Вимоги:

- код на гітхабі
- README в якому написано як запустити, бажано одна команда
- конкурентні запити в API мають працювати

Ресурси:

- кафку найпростіше підняти через Docker Compose як описано тут https://developer.confluent.io/quickstart/kafka-docker/
- зручний консольний клієнт до кафки https://github.com/edenhill/kcat