Components

PULSE system components and modules

Components

PULSE is organized into modular components, each with a specific responsibility.

Event Ingestion (/src/workers/ingestion)

Accepts and validates incoming events.

Key Files:

Responsibilities:

Performance:

Query Engine (/src/workers/query)

Executes analytics queries and aggregations.

Key Files:

Responsibilities:

Performance:

Cohort Analysis (/src/workers/cohorts)

Manages cohorts and retention analytics.

Key Files:

Responsibilities:

Snapshots:

Alert Rules (/src/workers/alerts)

Monitors metrics and triggers alerts.

Key Files:

Responsibilities:

Authentication (/src/workers/auth)

API key validation and session management.

Key Files:

Responsibilities:

Security:

WebSocket Streaming (/src/workers/streaming)

Real-time event streaming to connected clients.

Key Files:

Durable Objects:

Responsibilities:

Webhooks (/src/workers/webhooks)

External system integration via webhooks.

Key Files:

Responsibilities:

Imports (/src/workers/imports)

Bulk data upload and processing.

Key Files:

Responsibilities:

Performance:

Exports (/src/workers/exports)

Scheduled report generation and storage.

Key Files:

Responsibilities:

Settings (/src/workers/settings)

Site and API key management.

Key Files:

Responsibilities:

Repository Layer (/src/repositories)

Data access layer using repository pattern.

Key Repositories:

Responsibilities:

Utilities

Validation (/src/utils/validation.ts)

Response Helpers (/src/utils/handlers.ts)

CRUD Helpers (/src/utils/crud-helpers.ts)

Durable Objects

StreamManagerDO

Real-time analytics streaming.

AggregatorDO

Event aggregation for metrics.

Database Migrations

Located in /src/migrations/:

001_initial_schema.sql         -- Core tables
002_sessions.sql               -- Session tracking
003_indexes.sql                -- Performance indexes
004_cohorts.sql                -- Cohort tables
...
021_performance_indexes.sql    -- Performance optimizations

Type System (/src/types)

TypeScript interfaces for type safety:

// API requests
interface EventIngestionRequest { ... }
interface QueryRequest { ... }

// API responses
interface ApiResponse<T> { ... }

// Database models
interface Event { ... }
interface CohortDefinition { ... }
interface AlertRule { ... }

Configuration

Component Interactions

Event Flow

Event → Ingestion → Validation → D1 Insert → KV Invalidate → Webhook Dispatch

Query Flow

Query → Auth → Validation → KV Check → D1 Query → Serialize → Response

Alert Flow

Alert Rule Triggers → Condition Evaluation → Webhook Dispatch → Retry Loop

WebSocket Flow

Connect → StreamManager DO → Subscribe → Aggregator DO → Real-Time Broadcasts

Next Steps

Last updated: April 3, 2026