Hi although I like the idea related to autonomous transactions, I don't think so this way is the best
1. The solution based on background workers looks too fragile - it can be easy to exhaust all background workers, and because this feature is proposed mainly for logging, then it is a little bit dangerous, because it means loss of possibility of logging. 2. although the Oracle syntax is interesting, and I proposed PRAGMA more times, it doesn't allow this functionality in other PL I don't propose exactly firebird syntax https://firebirdsql.org/refdocs/langrefupd25-psql-autonomous-trans.html, but I think this solution is better than ADA's PRAGMAs. I can imagine some special flag for function like CREATE OR REPLACE FUNCTION ... AS $$ $$ LANGUAGE plpgsql AUTONOMOUS TRANSACTION; as another possibility. 3. Heikki wrote about the possibility to support threads in Postgres. One significant part of this project is elimination of global variables. It can be common with autonomous transactions. Surely, the first topic should be the method of implementation. Maybe I missed it, but there is no agreement of background worker based. Regards Pavel