Запускается postmaster’ом при каждом новом клиентском подключении (через libpq, psql, приложение и т.д.).
Один backend — одно клиентское соединение: если у вас 10 подключений, будет 10 backend-процессов.
Полностью отделён от других backend’ов по стеку вызовов и состоянию, но работает с общей памятью и диском (через shared buffers, WAL, lock table и т.д.).
Обрабатывает весь жизненный цикл сессии:
Аутентификация (через pg_hba.conf)
Выполнение SQL-запросов (DML, DDL, транзакции)
Управление транзакциями (BEGIN, COMMIT, ROLLBACK)
Взаимодействие с Lock Manager для получения/освобождения блокировок
Чтение/запись данных через shared buffers и local buffers
Генерация WAL-записей при изменениях
Не является фоновым процессом — он «живёт» только пока открыто клиентское соединение.
При завершении соединения backend завершается, освобождая ресурсы (но shared memory остаётся).
Может участвовать в репликации:
На primary — может стать WAL sender, если подключается standby.
На standby — не создаётся для обычных подключений в режиме recovery, если только не включён hot_standby = on (тогда создаются read-only backend’ы).