K

Klaviyo Engineering

klaviyo.tech · Company blog · on HN since 2018

Klaviyo's engineering team writes about scaling event processing, Graphite metrics, Flink performance, CI problems and using GPT-4 for coding.

What HN saysHN links it mostly in Klaviyo hiring posts, and a Klaviyo engineer commented on how their RabbitMQ/Celery stack compared with DoorDash's.
15HN people shared it
2linked it in comments
23stories submitted
86story points
8 months agolast shared
2018people per year2026

Most-shared posts

  1. 1
  2. 2
    Scaling Graphite to Millions of Metrics
    2 people · 9 points · first shared 2019 · discussion on HN
  3. 3
    Understanding Timings in Distributed Systems
    2 people · 4 points · first shared 2024 · discussion on HN
  4. 4
  5. 5
    Calculating π on Pi Day
    1 people · 9 points · first shared 2023 · discussion on HN
  6. 6
  7. 7
  8. 8
    Fast Visual Testing for Embedded Content
    1 people · 4 points · first shared 2018 · discussion on HN
  9. 9
    GPT-4 for Coding: 16 Observations and Tips
    1 people · 4 points · first shared 2023 · discussion on HN
  10. 10
  11. 11
    Load Testing Software Systems
    1 people · 2 points · first shared 2025 · discussion on HN
  12. 12
    GPT-4: From strong pair coder to annoying pair coder
    1 people · 2 points · first shared 2023 · discussion on HN
  13. 13
    Managing Complexity with Architecture Patterns in Python
    1 people · 2 points · first shared 2021 · discussion on HN
  14. 14
    Building a Distributed Priority Queue on Kafka
    1 people · 2 points · first shared 2025 · discussion on HN
  15. 15
    Hang On, What's Survival Analysis?
    1 people · 1 points · first shared 2024 · discussion on HN

What HN people wrote when they linked it

syrneus · 2019-05-01
Klaviyo | Boston ONSITE | https://www.klaviyo.com | https://klaviyo.tech | http://bit.ly/klaviyocareers Klaviyo is a data science company that helps brands grow faster. We're profitable, engineering-driven and growing incredibly fast. We have over 12,000 paying customers and are doubling year over year and ingesting an order of magnitude more data every year. We're hiring across the board (Python/Java engineers, systems engineers, site reliability engineers, hands-on team leads, security engineers, data scientists, product managers, designers, and more). We run a DevOps culture and love full stack engineers who code code in both Python and Javascript (we use React and TypeScript). Our tech stack is predominantly Python (Django), Java and JS/React running on AWS at massive scale. We run thousands of EC2 boxes, 100s of Aurora MySQL and PostgreSQL clusters and petabyte scale Cassandra clusters. We're heavy users of Kafka, RabbitMQ and Redis. We've just recently launched our first workloads on Kubernetes. We send billions of emails every month and fire customers that send spam--our goal is helping customers have more effective long-term relationships with their customers. We also do push notifications, website personalization and soon SMS. We recently raised one of the largest fund-raising rounds in Boston history ($150m) but don't intend to change our core values which includes growing our business organically. Feel free to reach out to me at…
zbentley · 2020-10-07
This is fascinating. Doordash seems to have encountered many of the same problems we (Klaviyo) did using a RabbitMQ/Celery stack, but arrived at totally different answers. Klaviyo doubled down on making the tools work for us, rather than jumping to a new and untested (for us) broker/job framework technology and arrived at some pretty nice solutions: Problems with observability? We added lots of custom StatsD and text logging instrumentation (Celery "signal" middleware), so that we could get e.g. accurate "how long do tasks like this spend waiting in the queue?" answers. Other than the inherent limitation of RabbitMQ being a strict queue (unlike Kafka, you can't "peek" at things in the middle of a topic without consuming that topic--we could do something hyper-complicated with exchanges and deliberate duplication of messages to address this limitation, but that doesn't sound worth it to me at all), observability of the brokers themselves seems pretty good. Coupled with Sentry reporting issues that occur during task processing, and some custom decorators to retry/delay/store tasks affected by common classes of systems issues, our visibility tends to be better than I've seen in any other asynchronous queue/message-bus system I've worked on. Sneaky task disappearances turned out to be mostly bugs in the way we were starting/stopping workers, related to signal handling and rabbitmq "redelivery". By really understanding the Celery worker start/stop lifecycle and coupling that…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close