Operations relaySystems online
Work/01
Durable web extraction

Price Intelligence Platform

An async control plane for price and catalog extraction jobs that keeps task history, isolates failures, and recovers interrupted work.

EvidencePublic repository
CategoryExtraction
RoleArchitecture → delivery
System routeRead left to right
  1. 01Typed run
  2. 02Durable queue
  3. 03HTTP / browser
  4. 04Validate
  5. 05Persist
01 / Context and problem

The operational problem

One-off scraping scripts become difficult to operate when pages hang, selectors change, targets throttle requests, or workers stop mid-run.

Ownership

Designed and built the service architecture, request schemas, extraction registry, task queue, worker flow, persistence model, failure semantics, tests, Docker packaging, and recruiter-facing documentation.

02 / Technical challenge

What made it non-trivial

The platform needed predictable ownership of work, explicit retry meaning, per-target errors, and safe recovery without duplicating extracted results.

SQLite is intentionally used for an easy local demo.

Real targets, proxies, cookies, and private selectors are excluded.

The project respects target terms, robots policies, rate limits, and applicable law.

03 / System design

The architecture decision

Each target becomes a durable task. Workers lease pending or expired tasks, run one bounded extraction attempt, then persist the result and task state in one transaction. HTTP and browser extractors share a typed registry.

01Python02FastAPI03asyncio04httpx05Playwright06SQLAlchemy07Pydantic08Docker
04 / Reliability

Designed for the failure path

  • 01

    Expired lease recovery for interrupted workers

  • 02

    Idempotent, task-linked result persistence

  • 03

    Explicit retry budgets and terminal dead-task state

  • 04

    Bounded HTTP and browser concurrency

  • 05

    Structured JSON run, lease, retry, and terminal logs

  • 06

    Safe in-place SQLite upgrade path

05 / Result and evidence

What this system proves

A locally runnable extraction service with inspectable run history, failure replay behavior, quality gates, CI, Docker verification, and clear operational boundaries. No hosted production deployment is claimed.

Tayyab can turn fragile browser scripts into a maintainable extraction system with explicit failure and recovery behavior.
06 / Lessons

What carries forward

01

Retry semantics should be named in total attempts, not inferred from an ambiguous budget.

02

Recovery is only useful when result persistence is idempotent.

03

A small operational API can make extraction failures understandable without a full dashboard.

Next system · 02Async Workflow Orchestrator