I noticed that a zeromq PUB socket will buffers all outgoing data if it is connecting, for example
import zmq import time context = zmq.Context() # create a PUB
You should be able to set a high water mark in the socket using the hwm settingom the pub socket. It lets you define how many messages are kept.