Sticky Sessions: állandó konténerhez köti a Modal szerverless munkameneteit

A Modal Sticky Sessions néven olyan funkciót indított, amely egy munkamenet minden kérését ugyanahhoz a konténerhez irányítja. A megoldás az állapotot megőrző hangügynökök, webalkalmazások, chat-szobák és többjátékos játékok kiszolgálását célozza.
- A Sticky Sessions minden munkamenetkérést ugyanahhoz a konténerhez irányít.
- A funkció a Modal Servers infrastruktúrájára épül.
- Az automatikus skálázás az aktív munkameneteket és a várakozó igényt figyeli.
- A megoldás hangügynökökhöz, állapotőrző webalkalmazásokhoz, chat-szobákhoz és játékokhoz készült.
A kérések helyett a munkamenet kerül középpontba
A Modal szerverless számítási infrastruktúrája valós idejű következtetéshez, tanításhoz és kötegelt feladatokhoz kínál automatikus skálázást. Ezeknél a rendszernél az egyes kérések jellemzően egymástól függetlenek. Egyes alkalmazásoknál viszont a kérések között folytonosságra van szükség.
Ilyen lehet egy hangfolyam beszédből szöveget készítő modellje, egy beszélgetést fenntartó hangügynök vagy egy többjátékos játék. Ezekben az esetekben a felhasználónak újracsatlakozás után is ugyanahhoz a konténerhez kell visszakerülnie a teljes munkamenet alatt.
A Modal 2026. október 20-i bejelentése szerint a Sticky Sessions erre ad megoldást. A funkció a Modal Servers alacsony késleltetésű infrastruktúrájára épül, és a munkamenethez tartozó valamennyi kérést ugyanarra a konténerre küldi.
Erősebb kötés a korábbi lehetőségeknél
A Modal korábban is támogatta a WebSocketeket Web Functions segítségével, de a kapcsolat egy Function bemenetéhez kötődött, nem közvetlenül egy konténerhez. Ha a kapcsolat megszakadt, az újracsatlakozás új bemenetet hozott létre, amely akár másik konténerre is kerülhetett.
Ez problémát jelenthet az állapotot kezelő webes felületeknél, például a Gradio és a Streamlit alkalmazásoknál, ahol minden kérésnek ahhoz a folyamathoz kell eljutnia, amely a felhasználó állapotát tárolja. Egy korábbi kerülőút a max_containers=1 beállítása volt, ez viszont a skálázás feladásával biztosította a ragaszkodást.
A Modal Servers támogatja a Modal-Affinity-Routing-Key fejlécet is. Ez a kéréseket lehetőség szerint ugyanarra a konténerre irányítja, de a konténer bármikor leállhat vagy lecserélődhet. A Sticky Sessions ezzel szemben erősebb garanciát ad, és a munkamenet összes kérését ugyanahhoz a konténerhez köti.
Munkamenet-alapú jogosultság és automatikus skálázás
A funkció használatához egy Modal Servert kell létrehozni a @modal.sessioned() dekorátorral. A munkamenetek az SDK-n vagy a HTTP API-n keresztül indíthatók. A sessions.start() hívás aláírt munkamenetjogkódot ad vissza, amelyet több kliens is használhat ugyanahhoz az állapothoz, például egy közös szobához vagy játékhoz.
A munkamenethez tartozó útválasztási adatok közvetlenül a jogkódba kerülnek. Így a proxyknak nem kell a munkamenet és a konténer kapcsolatát újraépíteniük újraindítás vagy több példány használata után. A Modal saját, állapot nélküli proxyja a tartós tárolóból egyeztetett, memóriában gyorsítótárazott útválasztási állapot alapján végzi az alacsony késleltetésű forgalomirányítást és terheléselosztást.
A Sticky Sessions esetében a skálázás egysége is megváltozik. A konténer egyidejűleg egy vagy több munkamenetet kezelhet, új munkamenetek pedig várakozási sorba kerülnek, ha elfogy a kapacitás. Az automatikus skálázó az aktív munkamenetek számát és a várakozó igényt figyeli, majd ezek alapján méretezi a konténerflottát.
Hangügynökök, közös szobák és játékok
A Modal szerint a Sticky Sessions több alkalmazástípushoz nyit közvetlen támogatást. A Modal Phonon Voice Bot például Pipecat-ügynököt és Gradium Phonon szövegfelolvasást használ WebRTC felett. Minden hívás egy konténerhez kötött munkamenet, így a WebRTC jelzései ahhoz a konténerhez jutnak, amely a kapcsolatot kezeli.
A megoldás közös chat-szobákhoz is használható. A csatlakozó kliensek a munkamenetjogkóddal ugyanarra a konténerre kerülnek, ahol az üzenetek minden résztvevőhöz eljuttathatók. A kliensek lecsatlakozhatnak, majd a chat-munkamenet élettartama alatt ugyanabba a szobába térhetnek vissza.
A játékalkalmazásoknál a memóriában tartott állapot megőrizheti a játék előrehaladását és csökkentheti a késleltetést. A Modal saját Curvytron többjátékos játékát Sticky Sessions használatával, Modal Serveren futó, us-east régiós telepítésben üzemelteti. A szolgáltatás az aktív szobák száma alapján automatikusan skálázódik.
Modal: Serverless routing made sticky


