Design an Event Tracking SDK / Client

Problem

Design the client-side event-tracking SDK that apps use to send analytics events to Amplitude.

Requirements

  • track(event, properties); identify(userId, traits)
  • Batch and flush events (size/time triggers)
  • Retry on network failure; persist unsent events
  • Respect opt-out

What evaluators look for

  • Clean API; batching and flush policy
  • Offline durability and retry/backoff
  • Thread safety; minimal app overhead

Extension

Add sampling and a plugin/middleware hook for enriching events.

added …
LeaderboardSalaryAccount