Source code Performance Stability Cost Releases

Scalability antipatterns

Code that is fine at 100 users and falls over at 10,000.

Overview

This check reads query patterns, request-path work, and serverless state for the shapes that scale with your data instead of staying flat. Each finding names the call site and what it does as the row count grows.

What it looks for

  • N+1 queries — a per-id fetch inside a map or loop
  • Queries with no pagination, and whole tables or files read into memory
  • Synchronous CPU-heavy work in the request path, and event-loop blocking calls
  • Hot reads with no caching layer
  • Global mutable state in serverless handlers

Why it matters

An N+1 query in a list view is one round trip per row: invisible with seed data, a timeout with real data. CPU-heavy work in the request path blocks the event loop for every other user on that instance.

Rules in this check

How the fixes arrive

Pull requestLow-risk changes arrive as a pull request on a lumioguard branch, with a breakage analysis attached. You review and merge it.
GuideChanges only you can make safely arrive as a step-by-step guide you can follow yourself or hand to your coding agent.

Run them all on your app

Connect your repo and your live services with read-only scopes. The first scan is free, and nothing changes without your approval.