Waydev: creșterea throughput-ului și unificarea notificărilor la un startup YC de engineering analytics (11 luni)
Unsprezece luni la un startup YC W21. Am migrat Laravel + Vue pe Octane și am livrat un microserviciu de notificări multi-canal (Slack, Teams, email, in-app), fără să rupem produsul live.
- Laravel
- Laravel Octane
- VueJS
- PHP
- MySQL
Provocarea
Waydev (YC W21) extrage metrici din provideri Git, sisteme CI și tracker-e de proiect pentru a le da liderilor tehnici o imagine mai clară despre ce livrează echipele lor. Pe sfârșit de 2021 avea două probleme concrete care nu puteau aștepta.
Plafonul de throughput. App-ul principal Laravel + Vue lovea limitele de throughput sub load real. Scalarea orizontală era o opțiune, dar scumpă. Adăugarea de instanțe fără să rezolvi overhead-ul per-request era doar să plătești mai mult pentru aceeași problemă.
Fragmentarea notificărilor. Notificările erau inconsistente între canale. Unele apăreau in-app. Altele pe email. Altele aveau integrări ad-hoc. Fiecare zonă de produs își construise propria logică de notificare, și toate divergeau ca timing și comportament. Echipele care construiau feature-uri noi reinventau roata notificărilor la fiecare feature.
Ambele trebuiau îmbunătățite fără să rupem ce foloseau clienții deja.
Cum s-au desfășurat cele 11 luni
Oct 2021
Început
Două probleme care nu puteau aștepta: un plafon de throughput pe app-ul Laravel și Vue, și notificări fragmentate între canale.
Oct 2021 – Aug 2022
Migrarea pe Octane și microserviciul de notificări, în paralel
Ambele livrate incremental, în spatele feature flags, cu un diff vizibil în fiecare săptămână, în ritmul roadmap-ului de produs.
Aug 2022
Predare
Mai mult trafic pe același hardware și o singură abstracție de notificări peste cinci canale, fără ca produsul live să se rupă.
Soluția
Laravel Octane pentru throughput. Octane menține state-ul aplicației cald între request-uri, eliminând overhead-ul de cold-boot la fiecare hit. Migrarea a intrat incremental în spatele feature flags. Am rulat cold-boot și Octane în paralel sub load real înainte de cut over, fără un salt netestabil.
Un singur microserviciu de notificări, toate canalele. În loc să patchuim path-ul de notificare al fiecărui feature separat, am tras logica de routing într-un singur serviciu care deținea fan-out-ul peste in-app, email, Slack, Microsoft Teams și Google Chat. Fiecare zonă de produs apela o singură abstracție. Adăugarea sau schimbarea unui canal însemna să atingi un singur serviciu, nu să vânezi fiecare callsite.
Diff-uri vizibile săptămânal. Startup-urile YC-backed trăiesc pe momentum. Chiar când munca de dedesubt era de infrastructură, fiecare săptămână livra ceva ce un client putea vedea. Migrarea de throughput și microserviciul au rămas în ritmul roadmap-ului de produs, nu pe o pistă separată.
Throughput
Înainte
App-ul Laravel și Vue atingea plafoane de throughput sub load real. Scalarea orizontală doar plătește mai mult pentru același overhead per request.
După
Laravel Octane menține state-ul aplicației cald între request-uri. Mai mult trafic pe același hardware, cost operațional la fel.
Notificări
Înainte
Fiecare zonă de produs și-a crescut propria logică de notificări, divergând în timing și comportament. Echipele reinventau roata notificărilor la fiecare feature.
După
Un singur microserviciu deține fan-out-ul peste in-app, email, Slack, Microsoft Teams și Google Chat. Fiecare zonă apelează o singură abstracție.
Nu sunt publicate sau inventate cifre de benchmark; câștigul de throughput este calitativ.
Rezultatele
App-ul principal a trecut pe Laravel Octane în producție. Throughput-ul a crescut pe același hardware; costul operațional a rămas la fel. Waydev nu a publicat cifre de benchmark și nu le inventăm. Rezultatul de business e calitativ: echipa putea servi mai mult trafic fără să adauge infrastructură.
Microserviciul de notificări a ajuns în producție purtând in-app, email, Slack, Teams și Google Chat în spatele unei singure abstracții. Echipele care construiau feature-uri noi au încetat să reinventeze logica de notificări.
Ambele schimbări s-au livrat fără să rupă suprafața de produs pe care clienții o foloseau. La un startup YC aceasta e bara minimă, și uneori cea mai grea parte.