Με την παρουσίαση που έγινε στο τελευταίο εργαστήριο, σχετικά με καποιο message broker service, φαίνεται πως εξασφαλίζεται η παράδοση των μηνυμάτων ακόμα και αν καποιο service είναι εκτός για καποιο χρονικό διάστημα και χάσει μηνυματα. Τί θα πρέπει να κανουμε όμως για την περίπτωση που το service αυτό είναι ο message broker - choreographer; Μια λύση που σκέφτομαι είναι το κάθε service να αποθηκεύει τα μηνύματα που δημιουργεί και να παρέχει ένα endpoint για να στείλει αυτα τα "pending" μηνύματα στον choreographer, όταν επανέλθει σε λειτουργία. Υπάρχει καποια καλύτερη εναλλακτική;



Microservices: Τι γίνεται εάν "πέσει" το service που κανει message broking;
Η πιο συντηρητική λογική είναι τα services που χρησιμοποιούν το messaging service να διακόπτουν τη λειτουργία τους αν δεν μπορούν να συνδεθούν σε αυτό. Εξ' αυτών, όσα έχουν κάποια πρόσβαση σε frontend, το κάνουν εμφανίζοντας ένα μήνυμα και προκαλώντας την αναστολή των υπηρεσιών που απαιτούν το messaging service. 


Αυτό είναι μια χαρά για την εργασία.


Γενικότερα:  

1. Σημειώστε ότι θα υπάρχουν ακόμη services που μπορούν να λειτουργήσουν, πχ κάποια που εμφανίζουν την κατάσταση της βάσης που γνωρίζουν, δηλαδή δεν είναι υποχρεωτικό να καταρρεύσει όλη η εφαρμογή.  

2. Σε πραγματικές εφαρμογές προφανώς οι υπηρεσίες αυτές είναι κρίσιμες. Για το λόγο αυτό, όπου δεν τις προμηθευόμαστε από πάροχο cloud που τις διαθέτει ως τέτοιες (πχ Amazon [SNS](https://aws.amazon.com/sns/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc), Amazon [SQS](https://aws.amazon.com/sqs/)) φροντίζουμε να τις βάλουμε να τρέξουν σε διάταξη που είναι όσο γίνεται διαθέσιμη και ανθεκτική σε σφάλματα.


