Here’s the background and reasoning about the pub-sub. This is going to be a W(all)OfT(ext).
But the main reason that we need a pub-sub is because of my reading of this spec:
//calls the function and either executes the function or creates a proposal to execute the function;
call(principal: Principal, function: Text, data: Blob) → async CallResult;
As I mentioned before, this function could await for a non-trivial (1 day?) time-frame because in a multi-sig scenario you would need a majority of principals to sign…if all principals need to sign on a manual basis, it could take a while. How/When would you return the value? My reading of this specification could be wrong.
A secondary point is to automate the notifying of the proposal to be voted on. Essentially we are polling on this from a pub-sub standpoint; except that we are doing in all in context of IC.
The other stuff is more visionary. Essentially I want to turn the narrative of cycle-wallets on it’s head to become a “digital twin” of a soul/person. I want this “wallet” to represent me in the digital world.
In the condensed version, I want the ability for this canister to hold my tokens, my nfts. But in addition, I want to publish services under my control that others could find to be useful to call (my rolodex,my pics etc). I want to develop my reputation on-line in a provable fashion; so that others can trust my reputation. I want to participate in group economic activities.
In this context, I want to be a signer to multiple called canisters; each one of them doing a myriad of different things. In this world, point-to-point connectivity is not scalable, imo. Imagine a world in which signing a proposal to add a principal as a signer to a multi-sig wallet is only one of many other use cases.
I can expand on anything required.
EDIT: The best way to negate/rebut the need of pub-sub is to go point-wise and see whether these features are actually required or not (as mentioned in the UI/ and this WOT) and if they are required, how is that envisaged to work. For example, @skilesare brings up an good point of communicating out-of-channel on which proposals to vote on (email, bot etc).