Non-functional requirements · Fast enough, in numbers
Performance-style app
Illustrative system design for a fast enough, in numbers app like Performance: 4 topics to read, from requirements to deep dives.
Illustrative design, not Performance’s actual implementation. Arrowbox is not affiliated with Performance’s owner. Disclaimer
Start with Response time limits Read for freeUpdated 2 Oct 2026
Core
People perceive response time in bands: an instant reaction, a flow that stays unbroken, and a wait that needs feedback. Each interaction in a design gets a band, and the band decides whether it needs an optimistic update, a spinner or a progress bar.
LCP, INP and CLS measure loading, responsiveness and visual stability from the user's side; a requirement states a threshold, a percentile (p75) and whether it is judged on field or lab data.
A performance requirement is only meaningful against a named device and network. Pick the target from real traffic, test on it with throttling, and let the app adapt when it detects a weak device or a slow or data-saving connection.
A budget is a limit the team agrees before building: on a user metric, on a timing, or on bytes and requests. Derive it backwards from the target, split it across the page, and make CI fail when a change breaks it.