---
title: "adam bien's blog"
url: https://daily.dev/posts/adam-bien-s-blog-j5vai0nvm
source_url: https://adambien.blog/roller/abien/entry/bce_who_may_call_whom
type: article
source: "Adam Bien"
published: 2026-08-11T15:24:22.010Z
updated: 2026-08-11T15:24:44.234Z
tags: ["architecture", "quarkus", "domain-driven-design"]
reading_time: 2
upvotes: 0
comments: 0
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# adam bien's blog

**[Adam Bien](https://daily.dev/sources/adam-bien)** · 2 min read · 0 upvotes · 0 comments

## Summary

BCE (Boundary-Control-Entity) architecture defines strict dependency rules within and between business components. Inside a component, dependencies flow downward: boundary to control to entity, or boundary to entity directly. Entities never depend upward — they emit events instead. Between components, control-to-control and entity-to-entity calls are allowed and direct, while boundary-to-boundary calls should be avoided. A useful heuristic: if a component communicates more with neighbors than with itself, it was split incorrectly.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://adambien.blog/roller/abien/entry/bce_who_may_call_whom>

## Questions this post answers

### In BCE architecture, can an entity call a control or boundary?

No. In BCE, entities must never call upward to controls or boundaries. If an entity needs something from a higher layer, it emits an event instead. Any layer of any component can process that event, keeping the entity unaware of the receiver. This preserves the downward-only dependency direction within a business component.

_Developers designing BCE components track architectural patterns like this on daily.dev._

### In BCE architecture, can one business component's control call another component's control directly?

Yes, control-to-control calls between business components are allowed and direct — no interfaces are required in between. In Quarkus and MicroProfile applications, the target control is simply injected. Boundary-to-boundary calls between components should be avoided, as boundaries are designed for external actors, not for inter-component communication.

_Teams adopting BCE across services find related architecture discussions on daily.dev._

## Similar posts on daily.dev

- [adam bien's blog](https://daily.dev/posts/adam-bien-s-blog-ugi2ub16d) · Jakarta EE · 0 upvotes · 0 comments
- [adam bien's blog](https://daily.dev/posts/adam-bien-s-blog-z1xlgyshz) · Adam Bien · 2 upvotes · 0 comments
- [adam bien's blog](https://daily.dev/posts/adam-bien-s-blog-3bu613zfl) · Adam Bien · 0 upvotes · 0 comments

---

Tags: [#architecture](https://daily.dev/tags/architecture), [#quarkus](https://daily.dev/tags/quarkus), [#domain-driven-design](https://daily.dev/tags/domain-driven-design)

[View this post on daily.dev](https://daily.dev/posts/adam-bien-s-blog-j5vai0nvm)
