Here is the typical structure of a gateway component. It is usually parameterized by a persistent, self-revealing value object (the circle) that opens a projection of itself on demand. You saw several examples of that. That little dialog is the one we used to build a query. It is a projection of a self-revealing “Slice” object, which encapsulates an SQL SELECT statement.
If the facility API at the left is stable (or its evolution is controlled by agreement), the API's implementation can evolve while wiring proceeds. So the facilities behind the API can evolve from mocks to elaborate objects while the wiring continues.
There is a uniform design for gateway components and self-revealing objects.
I use the term “facility” because these interfaces can be lower-level than business-level services. In the menu example the facility was a relational database that was made to look like an object database by the Domain Objects (the squares).
