Problema
Waydev (YC W21) extrage metrici din provideri Git, sisteme CI și tracker-e de proiect ca să dea liderilor tehnici o imagine mai clară despre ce livrează echipele lor. Două probleme concrete:
- App-ul principal Laravel + Vue lovea plafoane de throughput. Scalarea orizontală era posibilă, dar scumpă.
- Notificările erau inconsistente. Unele apăreau in-app, altele erau trimise pe email, altele aveau integrări ad-hoc, și toate divergeau în comportament.
Ambele trebuiau îmbunătățite fără să rupem produsul live.
Abordare
- Laravel Octane pentru throughput. Migrarea pe Octane păstra state-ul aplicației cald între request-uri și creștea throughput-ul pe același hardware. Migrarea a fost făcută incremental în spatele de feature flags ca să comparăm cold-boot vs Octane sub load real înainte de cut over.
- Un microserviciu de notificări, multe canale. În loc să patchuim path-ul de notificare al fiecărui feature separat, am tras logica într-un singur serviciu care deținea routing-ul peste in-app, email, Slack, Microsoft Teams și Google Chat. Fiecare zonă de produs apela o singură abstracție; fan-out-ul trăia într-un singur loc.
- Diff-uri mici, livrare săptămânală. Startup-urile YC-backed trăiesc și mor pe momentum. Fiecare săptămână a livrat ceva ce clienții puteau vedea, chiar când munca de dedesubt era de infrastructură.
Rezultat
- 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.
- Noul microserviciu de notificări a purtat in-app, email, Slack, Teams și Google Chat în spatele unei singure abstracții. Fiecare zonă de produs a încetat să-și reinventeze codul propriu de notificare.
- Migrarea și microserviciul au ieșit în producție fără să rupă suprafața de produs pe care clienții o foloseau deja.
Note de stack
Laravel pe backend, VueJS pe frontend, MySQL pentru persistență, Laravel Octane peste. Stack boring, stack corect. Ingineria interesantă a fost în rollout, nu în alegerea framework-ului.