Analytics Client
Npm Package + RESTful API
Technologies
JavascriptGolangRelational DBMS
Features
Offline FirstBatch UpdatesRetriesNpm Package
Description
Tiny library to track user events, designed from the ground up to be resilient to network failures, and to be efficient.
Duration
Work-in-progress
Role, responsibilities, and challenges
As a full-stack developer, I created both the analytics client and the API endpoint. I also embedded it in the Interactive Video Player.
I had to guarantee that every single event got tracked, so for example, if the network failed, the user went offline or closed the window, I had to persist the current batch of events locally for eventual retries.
Analytics clients tend to generate a lot of traffic. So, in order to minimize the number of API requests, I had to track events periodically in batches.
The RESTful API endpoint had to be flexible enough to receive metrics from multiple applications. Also, the database had to be modeled in a way that made it easy to consume metrics from various perspectives, so events had to be tracked in multiple formats. Check out the Analytics Dashboard project to know more.