def METHOD_NAME(vineyard_socket, object_id, serialization_options):
    """Serialize a vineyard object as a stream.
    The serialization executes in the following steps:
    1. glob all blobs in the meta
    2. build a stream for each blob
    3. generate a hierarchical `StreamCollection` object as the result
    """
    client = vineyard.connect(vineyard_socket)
    meta = client.get_meta(object_id)
    queue: "ConcurrentQueue[Tuple[ByteStream, memoryview]]" = ConcurrentQueue()
    serialized_id = traverse_to_serialize(
        client, meta, queue, '', serialization_options
    )
    # object id done
    client.persist(serialized_id)
    report_success(serialized_id)
    # start transfer
    #
    # easy to be implemented as a threaded executor in a future
    parallelism = serialization_options.pop('parallelism', multiprocessing.cpu_count())
    executor = ThreadStreamExecutor(
        SerializeExecutor,
        parallelism=parallelism,
        task_queue=queue,
        serialization_options=serialization_options,
    )
    results = executor.execute()
    logger.info('finish serialization: %s', results)