New: Record journeys with our Chrome Extension
qa.ai home
Back to blog
Engineering

How We Built a Browser-Based Journey Runner at Scale

· 2 min read

When we set out to build qa.ai, we knew the core challenge would be running real browser sessions reliably at scale. Most uptime monitors just ping an endpoint and check the status code. We wanted something fundamentally different: a system that replays actual user flows — clicking buttons, filling forms, navigating pages — in a real browser, every few minutes, 24/7.

The Architecture

Each journey run spins up a headless Chromium instance via Playwright. We chose Playwright over Puppeteer for its multi-browser support and more reliable auto-waiting. The runner executes each step sequentially, capturing screenshots at key moments and measuring timing for every action.

Scaling Challenges

The hardest part wasn't running one browser — it was running thousands concurrently without them interfering with each other. We use isolated browser contexts (not just tabs) to ensure complete session isolation. Each run gets its own cookies, storage, and network state.

We distribute execution across multiple workers using Laravel's queue system with Redis. Each worker can handle several concurrent browser sessions, and we auto-scale based on queue depth.

Reliability at the Edge

Network conditions vary. Sites load differently at different times. A step that takes 200ms on a good day might take 3 seconds when the target site is under load. We built adaptive timeouts that learn from historical run data — if a step normally takes 500ms but occasionally spikes to 2s, we set the timeout accordingly rather than using a fixed value.

What We Learned

Building a browser-based monitoring system taught us that reliability is about handling the 1% of cases that break assumptions. The happy path is easy. The hard part is gracefully handling popup dialogs, cookie banners, layout shifts, and intermittent network failures without false-alerting your users at 3am.

Share this post

Related Posts

If your lead-gen form broke 4 hours ago. Would you know?

Set up your first journey in under 5 minutes.

Get Started

We use cookies 🍪

They help us learn how you use qa.ai to improve your experience. View our privacy policy.

Cookie preferences

Necessary

Required for the site to function.

Always on

Analytics

Helps us understand usage and improve the product.