Why In AXI4 protocol we are using register slices and buffer components?

we are using register slices and buffer components in AXI4 protocol for delaying the transaction.

What is the main difference between register slices and buffer components?

How buffer components can be implemented in AXI4 protocol.

Shall i replace the buffer component with register slice?