Leo Cristofani · Web Developer

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.