I was on-site at Atrium Health watching visitors check in. Everything looked fine — until the line started stacking up. One user took almost a full minute to get through the kiosk.
No crashes. No errors. Just... lag. I watched closely and noticed a tiny delay after every keystroke in the “Recent Visitors” search field.
That field was doing a live DB call on every character typed — re-querying the database for matches in real time. With thousands of past entries and no debounce logic, it was hammering our backend with every keystroke.
“That field was added as a last-minute request. No one thought it’d be the bottleneck.” — Implementation Engineer
We disabled live searching and switched to a dropdown of the last 10 visits (client-configurable). Paired that with debounce logic for any future search fields.
Line wait times dropped by 40%. Visitors were happier. Staff stopped redirecting people manually. Everyone won.
Performance issues don’t always show up in dashboards — sometimes, they show up in line.