სინქრონული კომუნიკაცია შედეგის პასუხამდე იკეტება; ასინქრონული კომუნიკაცია გზავნის შეტყობინებას და გრძელდება ელოდების გარეშე. თითოეული განსხვავებულ კომპრომისებს ქმნის კავშირში, დაკვიანებაში და ხელმძღვანელობაში.
სინქრონული კომუნიკაცია შედეგის პასუხამდე იკეტება; ასინქრონული კომუნიკაცია გზავნის შეტყობინებას და გრძელდება ელოდების გარეშე. თითოეული განსხვავებულ კომპრომისებს ქმნის კავშირში, დაკვიანებაში და ხელმძღვანელობაში.
| ასპექტი | სინქრონული (REST/gRPC) | ასინქრონული (messaging) |
|---|
| გამოძახება ელოდება? | კი | არა |
| დროითი კავშირი | მკაცრი | დაბალი |
| მოწყობის გამძლეობა | დაბალი | მაღალი (ბროკერი ინახავს) |
| თანმიმდევრობა | მყისიერი | საბოლოო |
| სირთულე | დაბალი | მაღალი |
| ამოცანაც | უფრო ადვილი (ხაზოვანი) | უფრო რთული (ნაკადი) |
SYNC: Caller ──request──▶ Service
Caller ◀─response── Service (blocked the whole time)
ASYNC: Caller ──message──▶ [ Queue ] ──▶ Service
Caller continues immediately; Service handles it later
ასინქრონული იმალება წარუმატებელი — დაკარგული ან ბილის შეტყობინება შეიძლება ჩუმად დაარღვიოს სამუშაო ხაზი. დაჭირდებათ მკვდარი წერილის რიგი და კონტროლი.
არჩევანი პირდაპირ აკონტროლებს როგორ გავრცელდება მოწყობა: სინქრონული ზარი ვერდაბდენ სწრაფი და თვალიანი, ასინქრონული შეტყობინებები განახევებს მაგრამ საკითხებს მოითხოვს მომხმარებლებზე.
კარგად შერევა — სინქრონული ზღვარზე, ასინქრონული სამუშაო ხაზებში — წარმოადგენს ძირითად უნარს ხელმძღვანელი microservices-ის აგებაში.