Justin's broadcast sharding with a pool of pubsub servers and ets tables. So we sharded by subscriber pid into a pool of pubsub servers each managing their own ets table per shard.
CutEr: A Concolic Testing Tool for Erlang Programs
Kostis Sagonas
Normally it's used as shell-based tool, but it cab also be called from code.
Receives as input from a single function to an entire module.
Generates automatically a set of test inputs to the given function(s) and returns which function(s) fails with which inputs.
High Performance Erlang - Pitfalls and Solutions (Machine Zone)
Deep look at some of the basic mechanisms of Erlang (shared data structures such as maps and ETS tables) and show how they behave under high load and parallelism.
For shared and/or large amount of data, definitely ETS tables.
To deal with write-locks (specially in update operations), implement Sharding on top of ETS tables.