Architecture

High level overview

Edges represent service dependencies.

SDK
sentry.example.com/api/\d+/store/
sentry.example.com
Your Application
Load Balancer
relay
Sentry (web)
symbolicator
kafka
redis
snuba
memcached
postgres
clickhouse
zookeeper
Sentry (worker)

Event pipeline

How an event gets saved. Edges represent data flow through system.

This graph is extremely simplified mostly due to layout constraints. Missing from this graph:

  • How Relay fetches project configs. Answer: from sentry-web
  • How Relay caches project configs. Answer: In memory, and in Redis
  • How Relay counts events and keeps track of quotas. Answer: more Redis
  • Symbolicator as auxilliary service to symbolicate-event
  • How alerting is triggered. Answer: postprocess-event, a Celery task which is responsible for alerting (spawned by a Kafka consumer in Sentry reading from eventstream)
  • Possibly more

For more information read Path of an event through Relay and Event Ingestion Pipeline.

Snuba
Sentry celery tasks
sends crashes
/api/n/store/
Snuba consumers
Clickhouse
save-event
preprocess-event
process-event
symbolicate-event
Snuba Kafka
(eventstream)
Your application
nginx
relay
Ingest Kafka
Sentry ingest consumer
You can edit this page on GitHub.