בתאוריה של מדעי המחשב, CAP theorem (נקראת גם התאוריה של ברואר על שמו של המדען אריק ברואר) קובעת כי עבור מאגר נתונים מבוזר אי אפשר להבטיח יותר משתיים מבין שלוש התכונות הבאות:
עקביות (Consistency) – בכל קריאה ממסד הנתונים מתקבל המידע העדכני ביותר שנכתב או שגיאה.
זמינות (Availability) – בכל קריאה ממסד הנתונים מתקבלת תשובה (אך לא בהכרח של המידע העדכני ביותר).
יכולת חלוקה (Partition tolerance) – המערכת ממשיכה לתפקד גם במקרים בהם אובדות או מתעכבות מספר הודעות בין מאגרי הנתונים בגלל בעיות תקשורת.
כאשר יש בעיה בהעברת הנתונים בין מאגרי המידע ישנן שתי אופציות כיצד להגיב לקריאה מהמערכת:
אישור הבקשה מה שמבטיח זמינות אבל פוגע בעקביות.
דחיית הבקשה על מנת לשמור על עקביות אך גורם לפגיעה בזמינות.
התאוריה קובעת שבעת שימוש במאגר מידע מבוזר יש לבחור בין עקביות וזמינות ואי אפשר להבטיח את שניהם.