Hi Jop
Thanks for the link, i'll elaborate a bit more;
What i understand from the architecture episode is that the communication between the internal interactor and the external client is normally through 2 interface definitions; both defined internally, with one being implemented by the interactor and used by the client, the other implemented by the client and used by the interactor, together these 2 interfaces form part of the boundary, as the interactor implements an interface this makes me think of the interactor as implementing a method, the client uses the method to pass in the request.
what i'd like to do is define two interfaces that are both implemented by the external client, one interface would be an Event that the interactor is subscribed to, the second the method the interactor uses to reply to the client. therefore instead of the client calling a method on the interactor; the client raises the event which passes control to the interactor, the request could be included in the EventArgs and the 'sender' of the event is the client which implements the reply interface. (i'm using C#).
the only down side that comes to my mind is that the instance of the interactor exists prior to being used as it is subscribed to the event, however this isn't actually the true interactor for the use case, the object subscribed to the event would actually use an "InteractorFactory" to get the actual interactor instance required and execute that true interactor.
The reason i want to do this is because the application i'm going to write emulates Micro computers on a network that interact with DPS6 superminis over HDLC/Topsynet, so the client to my interactors is actually the interface to the network, each communications message that comes in will be addressed to a Topsynet channel, essentially addressed to a piece of software on a micro, or in my case; a specific interactor.
the strategy of using an event in the boundary seems fine to me in this scenario, but i haven't come across an example of this and i'm new to Clean Code (seen the light!), so could be missing something.
thanks
Lee