Descrizione del progetto
TradottoL'affidabilità è fondamentale qui, quindi sono più preoccupato per i fallimenti degli abbonati. Ogni tentativo di consegna deve essere firmato in modo che il destinatario possa verificare che provenga da noi, portare un timestamp e un ID di consegna unico per proteggere contro i duplicati, e in caso di errore riprovare con un backoff esponenziale e jitter fino a un limite configurabile, quindi passare allo stato di dead-letter. Abbiamo bisogno di limiti di concorrenza per endpoint in modo che un abbonato sopraffatto non consumi risorse dal resto, e chiavi di idempotenza in modo che un tentativo di ripetizione non causi mai un duplicato dal lato del destinatario. Per essere chiari sul campo: questo non è un sistema di messaggistica generale per compiti interni e non è un gateway API che proxy il traffico in arrivo. Si tratta di consegnare in modo affidabile webhook in uscita a terzi, e la coda è solo un meccanismo interno, non il risultato.
Ho anche bisogno di osservabilità e gestione che posso trasferire al supporto e ai partner. Ogni tentativo dovrebbe finire in un log di consegna con richiesta, codice di risposta, latenza e conteggio dei tentativi, ricercabile per evento, endpoint e stato. Dovrebbe esserci un modo per riprovare manualmente le consegne fallite o in stato di dead-letter, mettere in pausa un endpoint e riprenderlo, e ruotare i segreti di firma senza downtime. Si prega di trattare questo come infrastruttura di produzione — con documentazione chiara e test, non un prototipo.
— Endpoint per ricevere eventi in arrivo con validazione e persistenza
— Modello di abbonamento: abbinamento dei tipi di evento agli endpoint degli abbonati
— Payload firmati con timestamp, ID di consegna e protezione contro i duplicati
— Tentativi con backoff esponenziale, jitter e stato di dead-letter
— Limiti di concorrenza per endpoint e gestione dell'idempotenza
— Log di consegna con ricerca, ripetizione manuale e pausa dell'endpoint
— Rotazione dei segreti, documentazione e autotest