Middle — Senior
Implementation of analytics collection module
livecode
Task condition
The service processes GET request streams through API Gateway → TinyUrl GET → Cache/DB. It is necessary to expand the architecture with a component responsible for analytics collection. It is required to implement data recording about link clicks:
- What to record: short_link, timestamp, IP, user-agent, referer, and others.
- Where to send events: to a separate stream, database, or logger.
- How to ensure that analytics collection does not slow down the main GET stream.
- What tools to use: queue (Kafka/PubSub), asynchronous worker, batch processing.
- How to build storage and aggregation of analytical data (e.g., ClickHouse).