Infrastructură · 2026
EV Control Plane
Provocarea
Un grup de stații de încărcare EV pe același circuit împarte un singur buget fix de amperaj — un nivel de parcare conectat la o siguranță de 200A nu poate lăsa fiecare loc să tragă putere maximă în același timp. Operatorii trebuie să poată plafona, pune pe pauză, rezerva și suprascrie modul în care acest buget este împărțit între stații, regulile de siguranță câștigând întotdeauna în fața celor de partener și de operator.
Partea grea este viteza și încrederea. O schimbare de regulă trebuie să ajungă la stațiile fizice aproape instantaneu, nu trebuie niciodată să depășească siguranța și nu poate fi pierdută în tăcere când un proces repornește sau o conexiune la baza de date cade în mijlocul operațiunii.
Soluția
Am construit un control plane care separă calculul rapid, intensiv la citire, de apelurile mai lente către hardware, intensive la scriere. Un resolver stateless recalculează amperajul-țintă al fiecărei stații din setul de reguli prioritizate ori de câte ori se schimbă ceva; o flotă de reconcilere per stație — câte un worker async ușor fiecare, modelat după pattern-ul de controller din Kubernetes — împinge aceste ținte către gateway-ul OCPP din aval.
Cele două jumătăți comunică printr-un tabel durabil de stare dorită în Postgres plus LISTEN/NOTIFY, așa că scrierile de reguli nu se blochează niciodată pe hardware, iar un worker repornit pur și simplu se reconstruiește din starea persistată în loc să se bazeze pe o coadă din memorie. Regulile sunt cheiate pe sursă, cu un invariant impus de baza de date — „o singură regulă activă per sursă” — iar schimbările declanșate de ceas pornesc dintr-un scheduler bazat pe Postgres, nu din timere fragile din proces.
Rezultate
- ▸ Timpul de la scrierea regulii până la dispatch-ul în aval măsurat la 19–33 ms cap-coadă — confortabil sub SLA-ul de 100 ms
- ▸ Convergență la pornire la rece a unei flote de 20 de stații în 21 ms timp real, de la prima cerere la ultima
- ▸ Supraviețuiește notificărilor pierdute și repornirilor de proces reconstruindu-se din starea durabilă din Postgres, niciodată din cozi din memorie
- ▸ Schimbările rapide și succesive de reguli se comprimă într-un singur apel în aval către ultima valoare, scutind hardware-ul de comenzi redundante