Sobes.tech
Middle

Εργασία: Λαμβάνονται γεγονότα από χρήστες, καθένα πρέπει να επαληθευτεί σε εξωτερική πηγή, αλλά αυτή δεν απαντά άμεσα. Υλοποιήστε το VerificationService που: - Δέχεται γεγονότα από χρήστες - Προσπαθεί να επαληθεύσει κάθε ένα επικοινωνώντας με μια εξωτερική υπηρεσία - Αν η απάντηση είναι PENDING, επαναλαμβάνει την αποστολή αυτού του γεγονότος όχι νωρίτερα από 5 δευτερόλεπτα - Μέγιστο 3 προσπάθειες, μετά τις οποίες το αναγνωριστικό του γεγονότος εμφανίζεται στο stdout με κατάσταση FAILED - Επιτυχώς επεξεργασμένα γεγονότα εμφανίζονται στο stdout με κατάσταση VERIFIED Τα πρότυπα και οι σφραγίδες των εξωτερικών εξαρτήσεων έχουν ήδη υλοποιηθεί: 1. VerificationStatus 2. Event 3. VerificationResult 4. IExternalSource public enum VerificationStatus { OK, Pending, Error } public record Event(string Id, string Payload); public record VerificationResult(VerificationStatus Status, string? Message = null); public interface IExternalSource { VerificationResult Verify(string eventId); } public class VerificationService { private readonly IExternalSource _externalSource; private const int MaxAttempts = 3; private static readonly TimeSpan RetryDelay = TimeSpan.FromSeconds(5); public VerificationService(IExternalSource externalSource) { _externalSource = externalSource; } // TODO: implement }

Εργασία: Λαμβάνονται γεγονότα από χρήστες, καθένα… - sobes.tech