Appearance
Multiple behaviors...
Multiple behaviors...
Involves using something like Hexagonal Architecture or the Mock-Free Unit Testing Pattern Language to define isolation boundaries in some way. This is at the design level, writ large (not architecture, because can't reproduce it frequently yet). Also involves the basics of creating an API - which might still be local function/method calls. This does not mean that I can physically or logically separate the chunks, just that I can define them.
This includes defining the Producer and Consumer at each boundary. Note: it is possible for a pair of systems to have multiple different boundary connections, and even for each to be the Producer in some and the Consumer in others. It is also possible for either the Producer or the Consumer to initiate conversations and issue Requests, with the other Responding.
Producer simply means the system that exposes the API. The Producer states all the things it can do, and the Consumer chooses what to do when.