למה לא מעבירים כסף בלי לוודא שהצד השני קיבל
איך מוודאים שפעולה שלמה מצליחה או שלמה נכשלת — בלי מצבי ביניים.
לקוח שילם, ההזמנה לא נוצרה, הכסף נעלם והמוצר לא הגיע. כשמעבירים 1000 ש"ח בביט — קודם יורד הכסף מהחשבון שלכם, ואז נכנס לחשבון של החבר. עכשיו דמיינו שצעד אחד הצליח והשני נכשל: הכסף ירד מכם אבל לא הגיע אליו, ו-1000 ש"ח פשוט נעלמו מהעולם.
Transaction עוטף כמה פעולות ביחד ומתייחס אליהן כפעולה אחת: חייב את הלקוח, צור את ההזמנה, עדכן את המלאי. או שהכל מצליח, או שהכל חוזר אחורה (Rollback) — אין מצב ביניים. אם פעולה אחת נכשלת, הלקוח לא מחויב, ההזמנה לא נוצרת והמלאי לא משתנה. כאילו כלום לא קרה.
טיפ: בכל פעם שכמה פעולות חייבות להצליח ביחד — תשלום, הזמנה ועדכון מלאי — עטפו אותן ב-Transaction אחת.
"בלי Transaction אפשר לחייב לקוח בלי לתת לו את מה ששילם עליו. איתו — או שהוא מקבל הכל, או שכלום לא קורה."