A method performed by a system comprising: receiving data and a header at the system, wherein the system requires data to be page-boundary-aligned; identifying a plurality of buffers, in which the data and the header are to be written; the method characterised by comprising: coalescing the header and the data into a Remote Direct Memory Access, RDMA, write, wherein the RDMA write comprises a 32-bit data space that comprises a number of free bits, wherein the free bits are those bits of the 32-bit data space that are available to store an offset, and the coalescing the header and the data into the RDMA write comprises: mapping the header and the data to the buffers; determining a maximum number of offsets that can be represented with the number of free bits, and determining an alignment of the header within a second-to-last buffer of the buffers, wherein: the alignment is calculated by dividing a buffer size by the maximum number of offsets, the buffer size is a size of each of the buffers, and the alignment defines one or more header boundaries; and writing the data and the header to the buffers by performing the RDMA write, wherein the writing of the data and the header comprises writing the data on page boundaries, writing the header on a last header boundary of the second-to-last buffer, wherein the last header boundary is a last available one of the one or more header boundaries in the second-to-last buffer, and writing, in the free bits in the 32-bit data space, an offset of the last header boundary of the one or more header boundaries. receiving data and a header at the system, wherein the system requires data to be page-boundary-aligned; identifying a plurality of buffers, in which the data and the header are to be written; the method characterised by comprising: coalescing the header and the data into a Remote Direct Memory Access, RDMA, write, wherein the RDMA write comprises a 32-bit data space that comprises a number of free bits, wherein the free bits are those bits of the 32-bit data space that are available to store an offset, and the coalescing the header and the data into the RDMA write comprises: mapping the header and the data to the buffers; determining a maximum number of offsets that can be represented with the number of free bits, and determining an alignment of the header within a second-to-last buffer of the buffers, wherein: the alignment is calculated by dividing a buffer size by the maximum number of offsets, the buffer size is a size of each of the buffers, and the alignment defines one or more header boundaries; and the RDMA write comprises a 32-bit data space that comprises a number of free bits, wherein the free bits are those bits of the 32-bit data space that are available to store an offset, and the coalescing the header and the data into the RDMA write comprises: mapping the header and the data to the buffers; determining a maximum number of offsets that can be represented with the number of free bits, and determining an alignment of the header within a second-to-last buffer of the buffers, wherein: the alignment is calculated by dividing a buffer size by the maximum number of offsets, the buffer size is a size of each of the buffers, and the alignment defines one or more header boundaries; and mapping the header and the data to the buffers; determining a maximum number of offsets that can be represented with the number of free bits, and determining an alignment of the header within a second-to-last buffer of the buffers, wherein: the alignment is calculated by dividing a buffer size by the maximum number of offsets, the buffer size is a size of each of the buffers, and the alignment defines one or more header boundaries; and the alignment is calculated by dividing a buffer size by the maximum number of offsets, the buffer size is a size of each of the buffers, and the alignment defines one or more header boundaries; and writing the data and the header to the buffers by performing the RDMA write, wherein the writing of the data and the header comprises writing the data on page boundaries, writing the header on a last header boundary of the second-to-last buffer, wherein the last header boundary is a last available one of the one or more header boundaries in the second-to-last buffer, and writing, in the free bits in the 32-bit data space, an offset of the last header boundary of the one or more header boundaries. writing the header on a last header boundary of the second-to-last buffer, wherein the last header boundary is a last available one of the one or more header boundaries in the second-to-last buffer, and writing, in the free bits in the 32-bit data space, an offset of the last header boundary of the one or more header boundaries.