getsentry/sentry
Developer-first error tracking and performance monitoring
Full-stack error tracking and application monitoring platform
Frontend bootstraps with config from Django, sends API requests through authentication middleware, which routes to endpoint classes that query models and return serialized data to React components for rendering
Under the hood, the system uses 3 feedback loops, 3 data pools, 4 control points to manage its runtime behavior.
Structural Verdict
A 11-component dashboard with 4 connections. 16654 files analyzed. Loosely coupled — components are relatively independent.
How Data Flows Through the System
Frontend bootstraps with config from Django, sends API requests through authentication middleware, which routes to endpoint classes that query models and return serialized data to React components for rendering
- Bootstrap — Frontend fetches initial configuration and user context from /api/client-config/
- Authentication — Requests pass through authentication layer supporting API keys, tokens, and sessions
- Authorization — Permission system validates user access to organizations, projects, and resources
- Endpoint Processing — Base endpoint classes handle request parsing, validation, and business logic
- Data Serialization — Models are serialized to JSON for API responses using DRF serializers
- Frontend Rendering — React components consume API data and render UI with error tracking context
System Behavior
How the system actually operates at runtime — where data accumulates, what loops, what waits, and what controls what.
Data Pools
Organizations, projects, users, events, and incident data
Bootstrapped configuration and preloaded organization data
Cached API responses and query results
Feedback Loops
- Authentication Retry (retry, balancing) — Trigger: Failed authentication. Action: Retry with different auth method. Exit: Successful auth or max retries.
- Permission Check (circuit-breaker, balancing) — Trigger: Permission denied. Action: Block request and return 403. Exit: Valid permissions.
- Feature Flag Evaluation (polling, balancing) — Trigger: Feature flag check. Action: Evaluate flag state for user/org. Exit: Flag resolved.
Delays & Async Processing
- Bootstrap Loading (async-processing, ~network latency) — Frontend waits for config before initialization
- API Request Processing (async-processing, ~database query + serialization time) — Client waits for response data
- Permission Resolution (async-processing, ~milliseconds) — Request blocked until permissions validated
Control Points
- Feature Flags (feature-flag) — Controls: Access to experimental endpoints and features
- Permission Scopes (runtime-toggle) — Controls: API access levels per user role
- Development Mode (env-var) — Controls: UI development server and hot reload. Default: SENTRY_UI_DEV_ONLY
- Rate Limits (rate-limit) — Controls: API request throttling per endpoint. Default: DEFAULT_RATE_LIMIT_CONFIG
Technology Stack
Backend web framework with ORM and admin interface
Frontend UI framework with TypeScript
API framework for REST endpoints
Module bundler for frontend assets
JavaScript testing framework
JavaScript/TypeScript linting
CSS linting
CSS-in-JS styling library
Self-monitoring and error tracking
Key Components
- ActivityItem (component) — Renders activity feed items with avatars, timestamps, and content bubbles
static/app/components/activity/item/index.tsx - ArithmeticBuilder (component) — Interactive UI for building mathematical expressions and queries
static/app/components/arithmeticBuilder/index.tsx - Token (class) — Base class for parsing and representing tokens in arithmetic expressions
static/app/components/arithmeticBuilder/token/index.tsx - ApiClient (class) — Main API client for handling HTTP requests and responses
src/sentry/api/__init__.py - OrganizationEndpoint (class) — Base class for API endpoints that operate within organization context
src/sentry/api/bases/organization.py - ProjectEndpoint (class) — Base class for API endpoints that operate on specific projects
src/sentry/api/bases/project.py - BaseAuthentication (class) — Handles various authentication methods including API keys, tokens, and session auth
src/sentry/api/authentication.py - bootApplication (function) — Initializes the frontend application with configuration data from the backend
static/app/bootstrap/index.tsx - Note (component) — Handles creation, editing, and display of activity notes with mentions support
static/app/components/activity/note/index.tsx - IncidentEndpoint (class) — Base endpoint for incident-related API operations with feature flag protection
src/sentry/api/bases/incident.py - OrganizationEventsEndpoint (class) — Base class for API endpoints that query and process organization event data
src/sentry/api/bases/organization_events.py
Configuration
figma.config.json (json)
codeConnect.label(string, unknown) — default: ReactcodeConnect.parser(string, unknown) — default: reactcodeConnect.interactiveSetupFigmaFileUrl(string, unknown) — default: https://www.figma.com/design/eTJz6aPgudMY9E6mzyZU0B/%F0%9F%90%A6-Components?node-id=8157-12490&p=f&t=boeFn5xr6XF6ljEJ-0codeConnect.include(array, unknown) — default: **/*.{tsx,jsx}codeConnect.paths.@sentry/scraps/*(array, unknown) — default: static/app/components/core/*
vercel.json (json)
$schema(string, unknown) — default: https://openapi.vercel.sh/vercel.jsonversion(number, unknown) — default: 2rewrites(array, unknown) — default: [object Object],[object Object],[object Object],[object Object]headers(array, unknown) — default: [object Object]github.silent(boolean, unknown) — default: true
src/sentry/api/endpoints/organization_events_spans_performance.py (python-dataclass)
suspect_op_group_columns(list[str], unknown)suspect_op_group_sort(list[str], unknown)suspect_example_functions(list[str], unknown)
src/sentry/api/endpoints/organization_events_spans_performance.py (python-dataclass)
id(str, unknown)start_timestamp(float, unknown)finish_timestamp(float, unknown)exclusive_time(float, unknown)trace_id(str, unknown)
Explore the interactive analysis
See the full architecture map, data flow, and code patterns visualization.
Analyze on CodeSeaRelated Dashboard Repositories
Frequently Asked Questions
What is sentry used for?
Full-stack error tracking and application monitoring platform getsentry/sentry is a 11-component dashboard written in Python. Loosely coupled — components are relatively independent. The codebase contains 16654 files.
How is sentry architected?
sentry is organized into 4 architecture layers: Frontend UI, API Layer, Core Services, Data Storage. Loosely coupled — components are relatively independent. This layered structure keeps concerns separated and modules independent.
How does data flow through sentry?
Data moves through 6 stages: Bootstrap → Authentication → Authorization → Endpoint Processing → Data Serialization → .... Frontend bootstraps with config from Django, sends API requests through authentication middleware, which routes to endpoint classes that query models and return serialized data to React components for rendering This pipeline design reflects a complex multi-stage processing system.
What technologies does sentry use?
The core stack includes Django (Backend web framework with ORM and admin interface), React (Frontend UI framework with TypeScript), Django REST Framework (API framework for REST endpoints), rspack (Module bundler for frontend assets), Jest (JavaScript testing framework), eslint (JavaScript/TypeScript linting), and 3 more. This broad technology surface reflects a mature project with many integration points.
What system dynamics does sentry have?
sentry exhibits 3 data pools (Django Models, Frontend Cache), 3 feedback loops, 4 control points, 3 delays. The feedback loops handle retry and circuit-breaker. These runtime behaviors shape how the system responds to load, failures, and configuration changes.
What design patterns does sentry use?
6 design patterns detected: Permission-based Authorization, Context Providers, Token-based Parsing, Base Endpoint Classes, Feature Flag Gates, and 1 more.
Analyzed on March 31, 2026 by CodeSea. Written by Karolina Sarna.