Kundecase AI og SaaS

Vores transskriptions-SaaS flyttede fra Rails til Rust på syv dage, uden at nogen blev logget ud

SoundScript.AI omdanner lyd til tekst på 99 sprog. Rails-appen kørte websitet, baggrundsjobbene og Redis på én lille server og nåede sine grænser. Vi skrev den om i Rust, gennemgik den side for side mod den gamle app og skiftede produktionen i et vindue på omkring fire minutter.

Kunde
Envixo
Platform
Webapp og mobil-API
Branche
AI og SaaS
Lanceret
2026

Udfordringen

Rails 8.1-appen virkede, men Puma, Sidekiq, Redis og PostgreSQL delte en server med 1.9 GB hukommelse. Under belastning tog sider sekunder at svare, og i juli 2026 gik baggrundsjobbene i stå i fem dage.

Før: Puma, Sidekiq, Redis og PostgreSQL på én server med 1.9 GB hukommelse
Efter: Web- og worker-services på Kubernetes med managed PostgreSQL 18 og uden Redis: køer, live-opdateringer og rate limits kører på PostgreSQL
Før: En median på 2.7 s på offentlige sider ved 100 samtidige forbindelser
Efter: En median på 11.7 ms i den samme test
Før: PDF-eksporter ulæselige i arabisk, hebraisk, persisk, urdu og devanagari-skrift
Efter: PDF'er sat op med Typst og Noto-fonte, med korrekt tegnsammensætning og tekst fra højre mod venstre
Før: Betalings- og transskriptionswebhooks, der accepterede usignerede hændelser, når en hemmelighed manglede
Efter: Hver webhook-signatur verificeret, altid
Før: 937 MB hukommelse i spidsbelastning
Efter: 102 MB hukommelse i spidsbelastning

Det byggede vi

En komplet omskrivning af produktet, ikke en prototype: websitet på 99 sprog, transskriptionsflowet, AI-resuméer og chat, eksporter, betaling, mobil-API'et og administrationskonsollen.

Samme URL'er og kontrakter

Hver oversat side, webhook-sti, endpoint i mobil-API'et og storage-bucket forblev den samme, så links, apps og integrationer blev ved med at virke.

Ingen blev logget ud

Rust-appen læser Rails' session-cookie og de eksisterende password-hashes, så brugerne forblev logget ind gennem skiftet.

Data verificeret, ikke antaget

Efter den sidste kopi blev rækketal og kontrolsummer for konti, transskriptioner, forbrug og abonnementer sammenlignet mellem den gamle og den nye database: identiske.

Et testopsæt til paritet

1,126 sideforespørgsler fordelt på 11 brugertyper og fire sprog, 39 formularindsendelser og 343 administrationsforespørgsler blev afspillet mod begge apps og sammenlignet.

Hele produktet

Transskription med Whisper og Azure, livestatus, AI-resumé og chat, eksport til TXT, SRT, DOCX og PDF, betaling via Stripe og Google Play, og en administrationskonsol.

En sikker vej tilbage

Den gamle server forblev intakt i to uger efter skiftet, så en rollback var en DNS-ændring.

Tekniske resultater

Målt i en belastningstest før lancering, på en delt maskine: de absolutte tal er vejledende, forholdene holder.

230x
Hurtigere mediansvartid under belastning
9x
Mindre hukommelse i spidsbelastning
880
Automatiserede tests ved hver ændring
7
Dage fra første commit til produktion
  • Produktionen skiftede i et vindue på omkring fire minutter
  • Tilmelding, upload, livestatus, downloads, AI, API og administration kontrolleret i produktion efter skiftet
  • Belastningstesten fandt en fejl i forbindelsespuljen, rettet før lancering
  • 99 sprog, inklusive PDF'er fra højre mod venstre

Teknologi

  • Rust
  • axum
  • PostgreSQL
  • Typst
  • OpenAI Whisper
  • Azure Speech
  • Stripe
  • Kubernetes

Brug for software bygget omkring din forretning?

Integrationer, interne værktøjer, apps og platforme, bygget på bestilling af seniorudviklere, der styrer AI-agenter. Fortæl os, hvad du har brug for, så viser vi dig, hvordan vi ville bygge det.