

Rebuilding Fathom Analytics on Serverless Infrastructure with Jack Ellis
Jan 1, 2020
59:43
Jack Ellis
Fathom Analytics
- Fathom Analytics (SAAS version, Affiliate link with $10 discount)
- Fathom Lite (Open-source, original Golang version)
- We rebuilt Fathom Analytics from the ground up and moved to Laravel Vapor
- How we built a GDPR compliant website analytics platform without using cookies
Laravel
- Laravel (PHP web framework)
- Laravel Vapor (Serverless provisioning and deployment tool)
Hosting Providers
- Digital Ocean (Host for Open-source version)
- Heroku (Host for 1st rewrite)
- AWS (Host for 2nd rewrite)
AWS Services Used
- ElastiCache (Redis)
- Elastic Load Balancing (Handles web requests and triggers Lambda functions)
- Relational Database Service (MySQL)
- Simple Queue Service (Message Queue)
- Lambda (Run functions without managing a server)
Other Links
- Things you should never do (Post Jack mentions on never rewriting software)
Timestamps
- [00:00:58] What's Fathom Analytics and how is it different from Google Analytics?
- [00:03:35] When was the project started?
- [00:06:00] Limiting what we know about our users
- [00:08:11] Tracking unique page views without cookies
- [00:11:50] The original Open Source Golang version of Fathom
- [00:14:06] The case for rewriting Fathom
- [00:17:46] The process of rewriting Fathom
- [00:20:49] Migrating from individual SQLite instances to multitenant MySQL
- [00:24:10] Working with DNS Caching, running the old and new application simultaneously while migrating
- [00:26:40] Moving from Digital Ocean, to Heroku, to AWS (using Laravel Vapor)
- [00:34:07] What's Laravel Vapor? (Provisioning and deployment tool for AWS serverless offerings)
- [00:37:06] Comparing how Fathom used Heroku vs AWS (Heroku Redis -> ElasticCache + SQS, Web/Worker Dynos -> SQS + Lambda functions)
- [00:40:25] Moving from Heroku Web/Worker dynos to Lambda functions
- [00:42:25] Using Elastic Load Balancer instead of API Gateway
- [00:44:01] Tracking load, downtime, maintaining availability
- [00:51:22] Walkthrough of what happens when a user visits a site running Fathom
- [00:52:50] Dealing with the AWS lambda cold start problem
- [00:54:04] Why serverless was a good fit and when to use it
Theme music is 12:30 AM by Crystal Cola.