DDD - Bounded Contexts, Aggregates, Entities
ב-Uber, המילה "Driver" מופיעה ב-6 מערכות שונות. במערכת ה-Dispatch, "Driver" פירושו מיקום GPS נוכחי, סטטוס זמינות, ואחוז קבלת נסיעות. במערכת ה-Payment, "Driver" פירושו פרטי חשבון בנק, לוח תשלומים, וטפסי מס. במערכת ה-Safety, "Driver" פירושו סטטוס בדיקת רקע, היסטוריית אירועים, ותיעוד compliance. מילה אחת, שישה מודלים שונים לחלוטין. אם כל המערכות היו חולקות מחלקה אחת של "Driver" - שינוי בסכמת ה-payment היה שובר את ה-Dispatch. אם מישהו בצוות ה-Safety היה מוסיף שדה incidentReport ל-Driver - כל שאר המערכות היו צריכות לדעת על זה. ה-Bounded Context הוא התשובה של DDD: לכל מערכת מותר להגדיר "Driver" בדיוק כפי שהיא צריכה.