Back to Projects

PulseAPI

Backend Engineer & Performance Architect

BackendPerformanceCachingAPI

PulseAPI is a backend service optimized for read-heavy search and analytics workloads. It combines indexed SQL query paths, cursor-based pagination, and Redis-backed response caching with async aggregate jobs to keep latency predictable under load.

Cursor-based
Pagination

Consistent traversal performance on large collections

Benchmark-driven
Optimization Approach

Baseline and iterative tuning loop with measurable deltas

Hot-path first
Cache Strategy

Expensive aggregate responses cached with explicit invalidation

SLO-aware
Reliability

Latency and error thresholds monitored per endpoint class

The Problem

Backend projects frequently claim to be scalable without proving performance behavior under realistic traffic patterns, especially at p95/p99 latency percentiles.

The Solution

Built an ASP.NET Core API with benchmark-driven tuning, query/index optimization, and cache-aware response strategies. Added load-test baselines, profiling loops, and operational metrics to validate improvements rather than relying on assumptions.

Technical Decisions

Key architecture decisions and their outcomes

Hybrid data access (Dapper + EF Core)

Context

Needed expressive domain modeling and fine-grained performance control for hot queries.

Decision

Used EF Core for model consistency and Dapper for performance-critical query paths.

Outcome

Maintained developer productivity while tuning the highest-impact endpoints.

Async precomputation for heavy aggregates

Context

On-demand aggregate queries introduced latency spikes under concurrent load.

Decision

Moved expensive aggregation work into background jobs with cache hydration.

Outcome

Read paths remained low-latency while preserving report fidelity.

Engineering Details

  • Performance profile captured with baseline k6 suites before optimization work
  • Cache keys include query fingerprint + tenant scope to avoid stale cross-context reads
  • Rate limiting protects shared compute from abusive query patterns
  • Tracing spans annotate DB calls, cache hits/misses, and serialization overhead
  • Benchmark notes are versioned with code for transparent performance claims

Key Highlights

  • Cursor-based pagination for large dataset traversal
  • Index-aware query paths for dominant read scenarios
  • Redis cache layer with targeted invalidation strategy
  • Async aggregation jobs to keep hot paths responsive
  • k6 load test baseline and optimization comparison reporting
  • OpenTelemetry instrumentation for trace and latency visibility

Tech Stack

Skills & Technologies

Related Articles

Related Projects