Thanks for your response. Ss I understand it now the difference is that checkpoints are synchronous but dirty pages eviction from shared buffers are asynchronous, correct? How then Postgres ensures that OS writes data to the disk so WAL can be deleted?
>WAL writes are asynchronous.
Is there a typo? If not then what data is written synchronously?