
Interceptor 실행
프로듀서는 설정된 interceptor 목록에 메시지를 전달함. interceptor는 메시지를 가공(수정)한 뒤 변경된 레코드를 반환할 수 있음.
Serializer 처리
레코드의 key와 value를 객체에서 byte array로 직렬화함.
Partitioner 계산
파티션이 명시되지 않은 경우, 기본 또는 설정된 partitioner가 토픽의 파티션을 계산함.
Record Accumulator 적재
레코드를 메모리에 있는 Record Accumulator에 추가함. topic-partition 단위로 배치로 묶고, 설정된 압축 알고리즘을 적용함. 이 시점에서는 아직 메모리에만 존재하며 Kafka broker로 전송되지 않은 상태임.

Sender 스레드가 배치를 묶어 전송
이후 Sender 스레드가 같은 브로커를 리더로 가지는 여러 배치들을 하나의 요청으로 묶어 해당 파티션의 leader broker로 전송함.
