Right now the contact list is loaded into ram and then memcpied for every call to ndb_process_event, this is a share-nothing architecture so no ownership state is assumed at the start of the pipeline, but the ownership is transferred between ingester and writer threads without a memcpy.
Eventually when I integrate web sockets into this it would then transfer the ownership off the socket to the ingester thread with no memcpy.