Τι συμβαίνει με την αποστολή γεγονότων αν το Kafka πέσει;
Golang
Είναι ένα μοντέλο με ετικέτες JSON (π.χ., RegisterUserRequest) ένα μοντέλο πεδίου; Πώς διαχωρίζουμε σωστά το DTO και την οντότητα πεδίου;
Είστε εξοικειωμένοι με την Εξαγωνική Αρχιτεκτονική; Μιλήστε για τη δομή της.
Η εξαγωνική αρχιτεκτονική αποτελείται από τρία στοιχεία: προσαρμογέα, θύρα και κεντρική εφαρμογή. Πώς επεξεργάζεται το εισερχόμενο αίτημα μέσω του handler μέχρι το μοντέλο domain;
Πώς υλοποιείται η αντίθετη πλευρά — το μοτίβο Inbox στην υπηρεσία ειδοποιήσεων; Πώς διασφαλίζεται η ιδιομορφία στην επεξεργασία των γεγονότων;
// Διορθώστε τον κώδικα ώστε τα αιτήματα να είναι ανταγωνιστικά και να εμφανίζεται ο κωδικός απάντησης // και σε περίπτωση σφάλματος, να καταγράφεται και να συνεχίζει η επεξεργασία package main import "net/http" var addrs = []string{"[link]"} func main() { for _, url := range addrs { resp, err := http.Get(url) if err != nil { log.Error(err) continue } // Επεξεργασία resp αν χρειάζεται } }
Έχετε εργαστεί ποτέ με DDD και CQRS; Διηγηθείτε μας γι' αυτό.
// Διορθώστε τον κώδικα ώστε οι αιτήσεις να είναι ανταγωνιστικές και να εμφανίζεται ο κωδικός απάντησης // και σε περίπτωση σφάλματος, εμφανίστε το λογισμικό και συνεχίστε την επεξεργασία package main import "net/http" var addrs = []string{"[link] "[link] "[link] "[link] "[link] "[link] "[link] func main() { var wg sync.WaitGroup data := make(map[string]bool) for _, url := range addrs { wg.Add(1) if !data[url] { data[url] = true go func(url string) { defer wg.Done() resp, err := http.Get(url) if err != nil { log.Println(err) return } log.Println(resp.StatusCode) }(url) } } wg.Wait() }
Σε μια αρχιτεκτονική μικροϋπηρεσιών, κάθε υπηρεσία έχει τη δική της βάση δεδομένων. Πώς λειτουργεί το μοτίβο Outbox σε αυτό το πλαίσιο αν το Kafka δεν έχει λάβει ακόμα το μήνυμα;
Πείτε μας για το μοτίβο Transactional Outbox — πώς λειτουργεί και γιατί χρησιμοποιείται;
Ο ομαδοποιητής λειτουργεί πάντα σε επίπεδο μιας μόνο συναλλαγής. Τι άλλο είναι σημαντικό να γνωρίζουμε για τους ομαδοποιητές στο DDD;