APM transactions displayed in wrong time order

I use ZMQ sockets

componentA publishes message like {'apm_id': 'xxx', 'data': 'event1'} to socket and log transaction to APM
componentB receive event1 from socket, process it for 200ms, log transaction to APM and publishes {'apm_id': 'xxx', 'data': 'event2'}to socket
componentC receive event1 from socket and log transaction to APM
componentC receive event2 from socket and log transaction to APM

I can write some very simplified python-code for this use-case and post it if necessary.
Because now these components are parts of our big application.

But it still does not clear for me, why I see correct logs in elasticsearch but wrong visualisation.