אני לא בטוח שכ"כ חשוב להבין את כל הפונקציות של המנגנון, מה גם היום בגרסאות 2008 זה כמעט מובנה.בכל אופן מדובר על מעין SOA ל-DB, כאשר SOA הכוונה ל-Service Oriented Architecture, שגורסת בתכנות ע"י סרביסים, שכל סרביס עושה פעולה משל עצמו, יכול לשבת על שרת משלו ומתקשר עם התכנית הראשית ועם סרביסים אחרים דרך פרוטוקלים שונים (בעולם התוכנה לפעמים זה טוב להפיץ תוכנה שמתקשרת עם סרביס, שעושה פעולה מורכבת, כך שאם יש בעייה בלוגיקה, אז אפשר רק לשנות את הסרביס ואוטומתית זה מוכל על המשתמשים, לפעמים זה טוב כאשר אתה לא רוצה להכביד על המחשב של המשתמש; זה מאד סקיילבילי ומאפשר גמישות למתכנת).
כאן זה הזמן לתהות אז מה הקשר בין SOA לבין Service Broker? אז בעקרון מייקרוסופט הגיעו לתובנה שצריך להוסיף רכיב שיהיה אחראי על לוגיקה של ביצוע פעולות אסינכרונויות מול ה-DB, דהיינו לפעמים אני רוצה לבצע שליפה מאד כבדה ולקבל את התוצאות באימייל, כשהיא תסיים, לפעמים אני רוצה לבצע מספר שליפות במקביל דרך סשן אחד באותו הזמן ובמקרים מורכבים יותר: לפעמים אני רוצה לשלוף מה-DB בצורה אסינכרונית מבוזרת, כלומר לשלוף צ'אנקים מטבלה באופן מבוזר על מספר חלוקות, להמשיך בריצה שלי וכל פעם שחוזר צ'אנק, לקבל התרעה מהמערכת ולקבל אותו. בקיצור, מדובר על לוגיקה שלמה לניהול בקשות אסינכרוניות מהמשתמש.
למה זה מבוסס באיזשהו מקום על SOA? כי זה סרביס. הוא משיק לרכיבים השונים של SQL, וכך ניתן לנהל את הלוגיקה שלו באופן פרטני משאר הרכיבים, הוא סקיילבלי וגם אינקרמנטלי.
