Discuss a project

DL-015 · Case study

Taking over a product-research SaaS that kept stalling

A product-research SaaS for Amazon sellers inherited an app that stalled under load. Our audit found it spent almost all its time waiting; we fixed the core, rebuilt it and kept running it.

Client
Name withheld
Location
US South
Industry
Product-research SaaS
Capabilities
01Audit02Stabilize03Build
01

Challenge

  • Inherited application slowed down and stalled as usage grew.
  • Database deadlocks interrupted user requests at busy times.
  • Slow, costly calls to third-party product-data providers.
02

Environment

  • Angular front end on an older .NET backend.
  • Relational database plus Amazon SP-API and external product-data feeds.
  • Live paying users throughout the takeover.
03

Intervention

  • Instrumented the app and profiled thread usage under real traffic.
  • Traced the slowdown to thread starvation: well over a hundred threads mostly waiting.
  • Fixed the database deadlock and cached repeated product-data responses.
  • Rebuilt V1: React front end, modular .NET services, background jobs, dedicated team.
04

Outcome

  • Root cause identified in the first weeks of the takeover.
  • Rebuilt V1 launched to customers in 2024.
  • The same team has developed the product continuously for over three years.
The legacy app's thread pool and database deadlock are diagnosed with monitoring; a rebuilt V1 splits work into services and background jobs over a cached data layer and Amazon SP-API.deadlockroot causerebuiltLEGACY APPAngular / .NETTHREAD POOLMostly waitingDATABASEDeadlocksMONITORINGProfilingV1 CORERebuilt servicesJOB WORKERSBackgroundCACHEProduct dataSP-APIAmazon data
  1. 01LEGACY APPAngular / .NETTHREAD POOLMostly waiting
  2. 02THREAD POOLMostly waitingDATABASEDeadlocksdeadlock
  3. 03MONITORINGProfilingTHREAD POOLMostly waitingroot cause
  4. 04LEGACY APPAngular / .NETV1 CORERebuilt servicesrebuilt
  5. 05V1 CORERebuilt servicesJOB WORKERSBackground
  6. 06V1 CORERebuilt servicesCACHEProduct data
  7. 07SP-APIAmazon dataV1 CORERebuilt services
Fig. 16From waiting threads to a rebuilt coreThe legacy app's thread pool and database deadlock are diagnosed with monitoring; a rebuilt V1 splits work into services and background jobs over a cached data layer and Amazon SP-API.Scale NTS

Results, as published.

99%
Of app time spent waiting, found in the audit
~6 weeks
To close the database deadlock
3+ years
Of continuous development

Stack and services.

Stack08

  • .NET
  • React
  • SQL Server
  • Background job queue
  • Real-time notifications
  • Datadog
  • AWS ECS
  • Amazon SP-API

Services used03

Tell us what has to work.

A senior engineer reads every brief. Describe the system, what it runs on today and what happens when it fails.

Discuss a project