Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk4 min

Scaling CrimeLens: What Its Backend Performance Tests Measured

CrimeLens’s reported stress-test p95 fell from 36.64 to 2.8 seconds after a bundled set of backend changes, though it missed its two-second target and had spike-test connection errors.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Abubakar Ahmed reports that CrimeLens’s stress-test p95 latency fell from 36,640 ms to 2,800 ms after a bundle of backend and deployment changes. The result is a substantial improvement in his rerun, but it did not meet the configured two-second p95 threshold—and the final spike test still recorded 31 connection-refused errors. This is a single, author-reported case study, not a production benchmark or a guarantee that the same changes will produce the same results elsewhere.

What CrimeLens does and how it was tested

CrimeLens is a full-stack crime reporting, mapping, and analytics platform. Its workflows connect citizens, public users, police officers, and administrators; approved crime data feeds maps, statistics, trends, and geospatial searches. Ahmed describes it as a PERN modular monolith built with React, TypeScript, Node.js, Express, PostgreSQL, PostGIS, and Supabase.

As an Amazon Associate I earn from qualifying purchases.

Ahmed used k6 to exercise ordinary API traffic, gradually increasing stress, sudden traffic spikes, authentication, crime-report submission, statistics and geospatial endpoints, and recovery after heavy traffic. The same k6 scripts were reused for the before-and-after runs, but the architecture and deployment setup changed between them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What the baseline exposed

In the baseline normal-load run, overall p95 response time was 5.13 seconds. Under stress, p95 rose to 36.64 seconds and p99 to 41.61 seconds. The /api/stats/summary endpoint was one of the main bottlenecks; Ahmed also identified database connection-pool contention and request queueing.

These findings point to different parts of the request path rather than one isolated defect: expensive or frequently repeated database work, limited connection capacity, and requests waiting behind other work. The article describes a bundle of changes, so its results cannot establish how much any individual measure contributed.

What changed between the runs

Ahmed reports changes across query execution, request handling, caching, deployment, and operational visibility. The account does not isolate a controlled experiment for each intervention.

  • Database and API work: added PostgreSQL indexes, optimized frequently executed queries, improved PostGIS and geospatial query handling, and added pagination.
  • Connections and caching: increased and monitored the database connection pool, and introduced Redis cache-aside caching with TTL and invalidation, plus Redis-backed rate limiting.
  • Request and response handling: added request validation and sanitization, tightened Helmet and CORS settings, and enabled gzip and Brotli compression.
  • Observability: added Pino structured logs and request IDs, along with Prometheus metrics and Grafana dashboards.
  • Deployment and background work: containerized the application with Docker, added Nginx as a reverse proxy, tested multi-instance load balancing, and used BullMQ for Cloudinary deletion jobs.
  • Delivery and security checks: added CI/CD checks involving GitHub Actions, CodeQL, npm audit, Docker scanning, and Trivy.

The useful engineering lesson is the measurement loop: establish a baseline, identify bottlenecks, choose targeted interventions, rerun comparable tests, inspect the results, and investigate what remains. Ahmed summarizes the cycle as: “Measure the existing system → identify bottlenecks → introduce targeted improvements → observe the system → rerun the same tests → compare the results -> find New Problems -> repeat”.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Reported before-and-after results

The figures below are reported by Ahmed in his DEV Community article. The page displays “Posted on Sep 22” without a year; 2026 is inferred from its site footer, which shows copyright 2016–2026. They are results from Ahmed’s runs, not independently reproduced measurements.

Rank #2
Sale
Dell T7810 “Chia Farming” Workstation/Server, 2X Intel Xeon E5-2690 v4 up to 3.5GHz (28 Cores & 56 Threads Total), 128GB DDR4, Quadro K620 2GB Graphics Card, No HDD, No Operating System (Renewed)
  • Dell T7810 Precision Tower Workstation
  • 2x Intel Xeon E5-2690 v4 14-Core/28 Threads 3.1GHz (3.5GHz Turbo)
  • 128GB Memory DDR4 – Nvidia Quadro K620 2GB
  • Add your own Hard Drives/ SSDs
  • Add your own Operating System

Normal load

Measure Before After
Requests processed 24,667 53,972
Throughput 25.5 req/s 55.4 req/s
p50 latency 1,230 ms 25 ms
p95 latency 5,130 ms 655 ms
p99 latency 7,690 ms 1,540 ms
HTTP error rate 0.10% 0.006%

Ahmed’s normal-load rerun reports more than twice the throughput alongside lower latency percentiles and a lower HTTP error rate. Those figures describe the tested workload and setup, not an expected result for another installation.

Stress

Measure Before After
Requests processed 33,106 289,121
Throughput 32.3 req/s 282.2 req/s
p50 latency 8,170 ms 119 ms
p95 latency 36,640 ms 2,800 ms
p99 latency 41,610 ms 4,335 ms
HTTP errors 0 0

The stress run’s final p95 of 2,800 ms remained above the configured two-second threshold. Zero HTTP errors in that run therefore does not mean every performance target was met.

Spike, recovery, and selected endpoints

Measure Before After
Requests processed in spike/recovery scenario 4,997 51,198
Spike-phase p95 45,191 ms 2,964 ms
Recovery-phase p95 10,370 ms 202 ms
/api/stats/summary p95 8,050 ms 1,104 ms
Radius-search endpoint p95 2,200 ms 583 ms

The final spike run also recorded 31 connection-refused errors against the local Nginx/Docker entry point. Ahmed treats this as a remaining edge-availability problem to investigate, not as a resolved outcome.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to interpret the comparison

The comparison indicates that Ahmed’s full set of changes coincided with materially higher reported throughput and lower latency in the reruns. It does not show that a specific tool—Redis, Docker, Nginx, or another component—caused a particular improvement. Nor does the same-script detail make the runs identical: the final architecture differed from the baseline.

Rank #3
Sale
Dell Precision T5810 Workstation E5-2680 V3 2.5GHz 12-Core 64GB DDR4 Quadro NVS 315 480GB SSD, No Operating System (Renewed)
  • Intel Xeon Processor: 12-core 2.5GHz processor for high performance computing
  • Quadro NVS Graphics: Dedicated NVIDIA graphics card for professional graphics and visualization
  • DDR4 Memory: 64GB of DDR4 memory for fast data access and multitasking
  • SSD Storage: 480GB solid state drive for fast boot and application loading
  • No Operating System: Pre-installed Windows 7 Pro for customization and compatibility

Test conditions also limit how far the figures can be generalized. Ahmed ran the tests on a local Windows machine. The baseline backend ran locally in Node.js development mode; the final run used Docker, Nginx, Redis, and application containers. Both used a remote Supabase PostgreSQL/PostGIS free-tier database, and the dataset was relatively small. The article does not establish production-scale behavior or provide independently confirmed raw test artifacts.

For a meaningful comparison with another service or deployment, a reader would also need the hardware and runtime mode, database tier and location, dataset size, concurrency and duration, network conditions, and whether the architecture changed. Ahmed notes that production performance can vary with hosting platform, database tier, deployment region, network latency, CPU and memory, and real dataset size.

Source

Abubakar Ahmed, “Scaling CrimeLens: From Performance Baseline to Measurable Backend Improvements”, DEV Community. The measurements and implementation details in this article are attributed to Ahmed’s account.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Quick Recap

SaleBestseller No. 2
SaleBestseller No. 3
Dell Precision T5810 Workstation E5-2680 V3 2.5GHz 12-Core 64GB DDR4 Quadro NVS 315 480GB SSD, No Operating System (Renewed)
Dell Precision T5810 Workstation E5-2680 V3 2.5GHz 12-Core 64GB DDR4 Quadro NVS 315 480GB SSD, No Operating System (Renewed)
Intel Xeon Processor: 12-core 2.5GHz processor for high performance computing; DDR4 Memory: 64GB of DDR4 memory for fast data access and multitasking
$358.99

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.