I've not looked into Go yet (I go on holiday and Google release a new language while I'm a away, hmph!) but if it's anything like Objective-C's 'protocols', it could work. You'd need to capture any messages and forward them to the appropriate component using some fast dispatching mechanism (hash table, I guess).