The term buffer is used both in programming and in hardware. It refers to a shared data storage area used to compensate for a difference in data flow rate or event occurrence time when hardware, program processes or data transmissions operate at different speeds or priorities.
Buffers allow each device or process to operate without being held up by the other. Similar to caches , buffers temporarily store data while it is exchanged between these services. Whereas caches hold data to accelerate the speed of the operations, buffers primarily support the coordination of the separate activities.