The term buffer is used both in pro­gram­ming and in hard­ware. It refers to a shared data stor­age area used to com­pen­sate for a dif­fer­ence in data flow rate or event occur­rence time when hard­ware, pro­gram processes or data trans­mis­sions oper­ate at dif­fer­ent speeds or pri­or­i­ties.

Buffers allow each device or process to oper­ate with­out being held up by the other. Sim­i­lar to caches, buffers tem­porar­ily store data while it is exchanged between these ser­vices. Whereas caches hold data to accel­er­ate the speed of the oper­a­tions, buffers pri­mar­ily sup­port the coor­di­na­tion of the sep­a­rate activ­i­ties.