In case of ErlBus, you can also set these parameters (replication factor and quorums), even the quorum of each operation (sub, pub, unsub, subscribers, etc.) can be set independently. So riak_core gives you the flexibility to choose the best distribution model depending on what you really need, and ErlBus inherits those features when you run it on top of riak_core.
So, you have to consider some variables to choose what distribution model to use: 1. Number of nodes 2. Network traffic (Messages/second) 3. Number of subscriptions (because both pg2 and gproc uses ETS tables)
Most of the cases is enough default ErlBus with PG2, but if you need a more flaxible and scalable distribution model, well, you probably should go for ErlBus with riak_core.
I really hope have answered your question, otherwise, you just let me know.
Thanks!