Rendre l'import idempotent et sûr sous concurrence #7
Labels
No labels
auth
deps
frontend
gameplay
import
infra
priority
P0
priority
P1
priority
P2
priority
P3
product
tests
type
bug
type
chore
type
feature
type
infrastructure
type
performance
type
security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
thibaud-lclr/ltbxd-actorle#7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
1. Le souci
L'import asynchrone découpe les films en batchs et peut traiter plusieurs messages en parallèle. Aujourd'hui, la déduplication repose surtout sur des vérifications applicatives (
findOneBy,count) sans contraintes uniques alignées en base.Conséquences possibles :
movie,actor,movie_role,award_type,award;2. Proposition de solution
Rendre le pipeline explicitement idempotent et robuste aux courses concurrentes.
Pistes :
count()de présence comme seul garde-fou.3. Proposition d'implémentation
Schéma
movie.ltbxd_refen unique ;actor.tmdb_iden unique ;movie_role(actor_id, movie_id)en unique ;award_type.nameen unique ;award(actor_id, name, year)en unique ou via hash métier.Code
FilmImporter,ActorSynceretAwardImporter, remplacer les pré-checks fragiles par une logiquefind-or-createtolérante aux collisions ;UniqueConstraintViolationExceptionpuis recharger l'entité créée par un autre worker ;Validation
Impact