I don't understand how Coroutining works

I have a web server. Before starting the web server, I do engine_create(_, busting_transactions(0),_E)

busting_transactions(Start) :-
    debug(log , '!!!! ~q', [Start]),

and I don’t see anything in the console.how to run a program that will run parallel to the web server?

Use thread_create/2,3. An engine requires a thread to make it do something (see engine_next/2).

I thought the engines are an easier alternative to the thread OS. I have a task in the cycle to receive data portions through HTTP_POST, I think that I can use engines for this. How could their use look like for me?

Whether they are easier or not depends on what you want to do. But yes, you can have an engine and have the HTTP handler of the POST request ask the engine to process the request. That way, all requests processed by that engine are serialized, i.e., a request that comes and that tries to get the engine will have to wait until the ongoing request is fully processed and the engine is released.

Study the manual pages to see how you can interact with engines. The tests also provide a lot of examples. See swipl-devel/test_engines.pl at 2ba73f73c0bc173164b7d45c8a4d1596ddbb2716 · SWI-Prolog/swipl-devel · GitHub

I made this example to understand how it works. In any case, my program does much more than display a message.