Какво се случва с изпращането на събития, ако Kafka падне?
Golang
// Поправете кода така, че заявките да са конкурентни и да се показва кодът на отговора // и при грешка, покажете лог и продължете обработката 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() }
Дали моделът с JSON тагове (например, RegisterUserRequest) е модел на домейна? Как правилно да разделим DTO и домейн ентитета?
Запознат ли сте с Хексагоналната архитектура? Разкажете за нейната структура.
Шестолинейната архитектура се състои от три елемента: адаптер, порт и централно приложение. Как се обработва входящата заявка чрез handler до модел на домейна?
Как да реализираме обратната страна — патърна 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? Разкажете за това.
Агрегатът винаги работи на ниво една транзакция. Какво още е важно да знаем за агрегатите в DDD?
В микросервизна архитектура всеки сервис има своя база данни. Как работи патърнът Outbox в този контекст, ако Kafka все още не е получила съобщението?
Разкажете за патърна Transactional Outbox — как работи и за какво се използва?