בחירת ארכיטקטורה - Decision Framework
ב-2006 Amazon פירקו את ה-retail monolith שלהם לservices. Jeff Bezos הוציא את ה-"API Mandate" המפורסם - כל team חייב לחשוף פונקציונליות דרך APIs בלבד, ללא גישה ישירה לדאטה של team אחר. הייתה זו החלטה שלקחה שנים של refactoring כואב, עם צוותים שנלחמו בגבולות, services שנפלו בגלל network failures שמעולם לא היו קיימים ב-monolith, ו-latency שעלתה בגלל כל ה-hops הנוספים. ב-2020, Shopify הכריזו שהם עוברים בכיוון ההפוך - מ-microservices חזרה ל-modular monolith. אותם engineering leaders שהילו על ה-Bezos mandate הוסיפו לשבח את ה-Shopify reversal. שני הכיוונים נכונים. שתי ההחלטות הגיוניות. שתיהן לחלוטין סותרות.
הנקודה היא שאין ארכיטקטורה "נכונה". יש ארכיטקטורה שנכונה לצוות הספציפי, לסקייל הספציפי, לבעיה הספציפית. "מה חברות מצליחות משתמשות?" היא השאלה הלא נכונה. "מה הצוות שלי צריך עכשיו?" היא הנכונה.