Software Sessions

{{ show.title }}Trailer Bonus Episode {{ selectedEpisode.number }}
{{ selectedEpisode.title }}
{{ selectedEpisode.title }}
By {{ }}
Broadcast by

Jack Ellis shares his experience rewriting Fathom Analytics and migrating to AWS serverless infrastructure using Laravel Vapor.

Show Notes

Jack Ellis

Fathom Analytics


Hosting Providers

AWS Services Used

Other Links

  • [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.

What is Software Sessions?

Practical conversations about software development.