Batch processing

NXLog implements an internal batch processing mechanism to efficiently process and move events along the defined routes. Batch settings can be specified globally or at the module level using the BatchSize and BatchFlushInterval directives. The module-level settings override the global settings.

Starting with NXLog version 5.2, events are organized in batches by the input modules. Events are accumulated until the batch size or flush interval is met. Once either of these limits is reached, the batch of events is written to a queue for processing by the next module(s) in the route. Output modules read the batched events from their log queues, process them, and write them to the output buffer in the same order as they were read.

In versions prior to 5.2, events were organized in batches by the output modules, some of which supported the FlushLimit and FlushInterval module directives. This is no longer the case and these directives have been deprecated.