def METHOD_NAME():
    port = random_port()
    class Joiner(Executor):
        @requests
        def foo(self, docs_matrix, **kwargs):
            for d1, d2 in zip(docs_matrix[0], docs_matrix[1]):
                d1.text = d1.text + d2.text + '!!!'
            return docs_matrix[0]
    class M1(Executor):
        @requests
        def foo(self, docs, **kwargs):
            for idx, d in enumerate(docs):
                d.text = f'hello {idx}'
    class M2(Executor):
        @requests
        def foo(self, docs, **kwargs):
            for idx, d in enumerate(docs):
                d.text = f'world {idx}'
    f = (
        Flow(port=port)
        .add(name='executor0', uses=M1)
        .add(name='executor1', uses=M2, needs='gateway')
        .add(uses=Joiner, needs=['executor0', 'executor1'], disable_reduce=True)
    )
    with f:
        resp = Client(port=f.port).post(
            on='/some_endpoint',
            inputs=[Document() for _ in range(3)],
            parameters={'hello': 'world', 'topk': 10},
            return_responses=True,
        )
    texts = {d.text for r in resp for d in r.docs}
    assert len(texts) == 3