일반적인 어플리케이션은 데이터 전송 시 disk → read-buffer → application-buffer → socket-buffer → NIC-buffer 의 과정을 거쳐 데이터를 전송한다.

카프카는 커널의 sendfile() 을 이용하여 애플리케이션 버퍼에 데이터를 올리지 않고 disk → read-buffer → socket-buffer → NIC-buffer 의 과정으로 데이터를 전송한다.

SSL 을 적용하는 경우 암호화를 위한 처리가 필요하므로 어플리케이션 버퍼를 거치게 된다. TLS 리스너는 zero-copy 이점을 잃는다.
Consumer 의 요청이 있는 경우 처리된 데이터는 1회성으로 바로 사라지지 않고 1차로 OS Page Cache 에 저장된다. 이후 동일한 데이터의 요청이 있는 경우 캐시에 저장된 데이터를 우선 읽어들인다.
디스크에 데이터 저장 시 데이터를 순차적으로 저장함으로써 disk seek time 을 줄인다.
디스크에 파일 저장 시 작은 파일을 여러 개 생성하지 않고 큰 파일(세그먼트, 기본 1GB)로 저장한다. 이후 데이터의 삭제가 있는 경우에 재조정이나 일부 삭제를 시도하지 않고, 해당 세그먼트의 데이터가 모두 만료(expire)됐을 때만 세그먼트 파일째로 삭제한다.