Let's talk just briefly about architecture. There are different architecture styles, architectures, and architecture patterns to consider. And these are architectures that can be used to enhance the use of domain-driven design. as the ports and adapters architecture. So notice here that on the left-hand side of the architecture, some kind of usage or user action, whether the user is a human or the user might be another system or a stream of data flowing in, these are driving the adapters on this side of the architecture and the adapters are adapting the technical input that's being provided here. They are adapting that to something, to concepts that the inside of the architecture, the application, and the domain model can understand. The application then is driving the adapters on this side. For example, The payments adapter is adapting the data and the information that is needed for payments, and it is integrating with some kind of a payments gateway out here on the left-hand side. So this is driving the payments gateway. driving the payments gateway. We also have a data store of some kind, and the data storage adapter is adapting the data from the application domain model, and it is driving the database to persist the data or to retrieve the data. to persist the data or to retrieve the data. The application can also drive remote procedure calls. Just like we are receiving remote procedure calls, basically calls to the application on this side or the architecture, we are sending remote procedure calls out to another system here. We need an adapter for that, and that adapter is driving the use of some kind of procedure call to another system. And we have, let's say, an event publisher, which is publishing streams of domain events, and those are driving the domain events from the application through to the streams that are being consumed outside the bounded context. This is known, again, as the ports and adapters architecture.