Bounded context

바운디드 컨텍스트

The same term can have different models and rules across business boundaries.

···
html
<div class="scene"><div class="title">ONE WORD, TWO MODELS</div><div class="contexts"><div class="context" id="sales"><b>SALES</b><div>CUSTOMER</div><span>account · plan</span></div><div class="bridge" id="map">MAP<br>→</div><div class="context" id="shipping"><b>SHIPPING</b><div>CUSTOMER</div><span>address · contact</span></div></div><div class="muted" id="contextState">Translate at the boundary</div></div>
css
.scene{width:min(94vw,760px);height:min(86vh,320px);padding:clamp(10px,2.5vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--fg);font:500 clamp(11px,1.3vw,16px)/1.25 "Pretendard Variable",Pretendard,-apple-system,sans-serif;display:flex;flex-direction:column;gap:clamp(7px,1.6vmin,12px);overflow:hidden}.scene *{box-sizing:border-box}.title{font-weight:750;color:var(--accent)}.muted{color:var(--muted)}.mono{font-family:ui-monospace,monospace}.row{display:flex;align-items:center;justify-content:center;gap:clamp(5px,1.4vmin,12px);flex:1;min-height:0}.tile{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:clamp(6px,1.6vmin,12px);text-align:center;min-width:0}.on{border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 12%,var(--surface))!important}.pulse{animation:pulse 1.6s infinite alternate}@keyframes pulse{to{border-color:var(--accent);transform:translateY(-3px)}}.contexts{display:flex;align-items:stretch;gap:5px;flex:1;min-height:0}.context{flex:1;min-width:0;border:2px dashed var(--line);border-radius:9px;padding:7px;display:flex;flex-direction:column;justify-content:space-around;text-align:center}.context b{color:var(--accent)}.context span{color:var(--muted)}.bridge{align-self:center;color:var(--accent);text-align:center;min-width:16%}.context.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
js
let right=false;function tick(){right=!right;document.getElementById('sales').classList.toggle('active',!right);document.getElementById('shipping').classList.toggle('active',right);document.getElementById('map').innerHTML=right?'MAP<br>→':'←<br>MAP';document.getElementById('contextState').textContent=right?'Sales account → shipping destination':'Shipping contact → sales account'}tick();setInterval(tick,1300);document.querySelector('.scene').addEventListener('pointerdown',tick)

A bounded context defines where one domain model and vocabulary apply. A customer may mean a contract relationship in Sales but a destination and contact in Shipping. Explicit translation between contexts avoids forcing one model on every team.

The demo maps a CUSTOMER card to the fields needed in each context. Boundaries also need ownership and data exchange contracts.

When to use

Use it when one term has different meanings across teams and a shared model keeps expanding.

Open as page ↗