Cum să protejezi un sistem împotriva atacurilor de replay atunci când proiectezi o API REST publică?
Python
Care este diferența dintre strategiile de blocare SELECT ... FOR UPDATE și SELECT ... FOR SHARE? Descrieți un caz practic pentru fiecare.
Care este diferența dintre asyncio.gather și asyncio.as_completed? În ce situații este preferabil un anumit mod față de celălalt?
Ce este problema „index bloat” în PostgreSQL, de ce apare din cauza mecanicii MVCC și cum să o gestionăm?
Cum se deosebește pattern-ul CQRS (Command Query Responsibility Segregation) de arhitectura CRUD tradițională? Când este justificată implementarea sa?
Cum este organizat mecanismul Variabilelor de Context (contextvars) și de ce nu funcționează threading.local obișnuit în corutinele asyncio?
Ce este o anomalie de citire non-repetabilă și la ce nivel minim de izolare a tranzacțiilor dispare complet în PostgreSQL?
Descrieți un scenariu în care colectorul de gunoi al Python nu poate șterge automat obiectele din memorie, chiar dacă nu mai există referințe către ele în cod.
Ce este o vulnerabilitate de tip Server-Side Request Forgery (SSRF) și cum ar trebui un dezvoltator backend să valideze datele de intrare pentru a o preveni?
Cum se proiectează un lock distribuit folosind Redis? Ce cazuri extreme trebuie luate în considerare pentru a evita condițiile de cursă?
Ce este legea lui Amda și cum se aplică în evaluarea eficienței scalării backend-ului?
Descrieți diferența dintre strategiile de livrare a mesajelor at-least-once și exactly-once în brokeri, de exemplu Kafka. Ce cerințe impune acest lucru backend-ului Python?
Care este mecanismul intern al cuvintelor cheie async și await în Python? Ce se întâmplă la nivelul generatorilor?
Cum ajută modelul Outbox să asigure că un mesaj într-un broker de mesaje precum RabbitMQ este trimis numai dacă tranzacția din baza de date relațională a fost finalizată cu succes?
Care este diferența dintre autorizarea bazată pe JWT cu liste negre de token-uri și JWT fără stare? Care sunt compromisurile în securitate și performanță?
Cum se poate scrie o metaclass personalizată care adaugă automat un prefix tuturor metodelor clasei create?
Cum se rezolvă arhitectural problema amplificării scrierii (scrieri excesive pe disc) atunci când se utilizează baze de date NoSQL sub o intensitate ridicată a actualizărilor?
Imaginați-vă o situație: o interogare analitică grea SELECT COUNT(*) FROM large_table este executată în PostgreSQL. Ajută un index pe cheia primară la accelerarea acestei interogări? De ce?