Разработать сервис для сбора и передачи аналитических данных

Сделайте единый фасад для событий и ошибок, адаптеры провайдеров и дисковую очередь доставки со статусом по каждому получателю.

Короткий ответ

Что ответить на собеседовании

Сделайте единый фасад для событий и ошибок, адаптеры провайдеров и дисковую очередь доставки со статусом по каждому получателю.

Подробный разбор

Ответ с пояснениями

Условие

В системе задействованы три внешних аналитических провайдера: Firebase, Mixpanel и Flurry. Требуется спроектировать сервис, который будет принимать события вместе с их параметрами, а ошибки фиксировать как отдельные сущности, отличные от обычных событий. Сервис должен корректно работать в офлайн‑режиме: все накопленные данные следует хранить локально и автоматически отправлять провайдерам, как только появится подключение к сети.

Ответ

Сделайте единый фасад для событий и ошибок, адаптеры провайдеров и дисковую очередь доставки со статусом по каждому получателю.

API разделяет track(Event) и record(ErrorReport), а запись содержит UUID, время, версию схемы и разрешённые параметры без секретов. Сначала сохраните её транзакционно локально; затем отправляйте партиями и отмечайте успех каждого провайдера отдельно. Повторы используют backoff, ограничения размера/срока хранения и event-id, если получатель умеет дедупликацию. Сетевой статус — лишь подсказка: успех подтверждает отправка, а не наличие Wi-Fi. iOS не гарантирует немедленную фоновую доставку при закрытом приложении. Flurry объявил прекращение Analytics с 15 марта 2024 года, поэтому в новом проекте этот исторический адаптер заменяют поддерживаемым сервисом.

Источник: www.flurry.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее