> Sure, you can go deeper down the rabbit hole here and say that we need to > add bgworker "categories" with reserved pools of worker slots for each > category. But do we really need that?
If we change these processes to bgworker, we can categorize them into two, auxiliary process(check pointer and wal sender etc) and other worker process. And max_worker_processes controls the latter.
Right. I think that's probably the direction we should be going eventually. Personally I don't think such a change should block the logical replication work from proceeding with bgworkers, though. It's been delayed a long time, a lot of people want it, and I think we need to focus on meeting the core requirements not getting too sidetracked on minor points.
Of course, everyone's idea of what's core and what's a minor sidetrack differs ;)