На build каждая 'use server' функция получает stable action ID. Client bundle содержит reference, не body. POST с ID + serialized args → server dispatch → stream result и re-rendered RSC.
Разбор
Два security mechanism по умолчанию: Next проверяет Origin vs Host (CSRF), closed-over variables encrypted — deleteById.bind(null, secretId) не утекает secretId в client. Ни одно не заменяет вашу authorization.
После mutation — invalidate из action: revalidatePath() / revalidateTag() purge Data и Full Route caches; redirect() navigates.
Arguments и return values — serializable (RSC wire format), как props через client boundary.
Итог
Server Action = скомпилированный POST endpoint с CSRF и encryption closures; auth и validation — ваша ответственность.