FIFO processors handle message group ordering with short-circuit behavior to prevent out-of-order processing.
Default (skipGroupOnError: false): When any record fails, all remaining records are marked as failed to preserve ordering.
With (skipGroupOnError: true): When a record fails, only records from the same message group are failed. Other groups continue processing.
Synchronous FIFO processor.
class SqsFifoPartialProcessor extends BatchProcessorSync {
constructor();
}Asynchronous FIFO processor.
class SqsFifoPartialProcessorAsync extends BatchProcessor {
constructor();
}import { SqsFifoPartialProcessor, processPartialResponseSync } from '@aws-lambda-powertools/batch';
const processor = new SqsFifoPartialProcessor();
const recordHandler = (record: SQSRecord): void => {
const payload = JSON.parse(record.body);
// If this fails, all remaining records are marked as failed
};
export const handler: SQSHandler = async (event, context) =>
processPartialResponseSync(event, recordHandler, processor, { context });import { SqsFifoPartialProcessor, processPartialResponseSync } from '@aws-lambda-powertools/batch';
const processor = new SqsFifoPartialProcessor();
const recordHandler = (record: SQSRecord): void => {
const payload = JSON.parse(record.body);
// If this fails, only records from this message group are marked as failed
};
export const handler: SQSHandler = async (event, context) =>
processPartialResponseSync(event, recordHandler, processor, {
context,
skipGroupOnError: true,
});import { SqsFifoPartialProcessorAsync, processPartialResponse } from '@aws-lambda-powertools/batch';
const processor = new SqsFifoPartialProcessorAsync();
const recordHandler = async (record: SQSRecord): Promise<void> => {
const payload = JSON.parse(record.body);
await processAsync(payload);
};
export const handler: SQSHandler = async (event, context) =>
processPartialResponse(event, recordHandler, processor, {
context,
skipGroupOnError: true,
});class SqsFifoShortCircuitError extends BatchProcessingError {
constructor();
}
class SqsFifoMessageGroupShortCircuitError extends BatchProcessingError {
constructor();
}SqsFifoShortCircuitError: Applied to unprocessed records when short-circuiting (default behavior).
SqsFifoMessageGroupShortCircuitError: Applied to records from a failed message group when skipGroupOnError: true.
type FifoProcessingOptions = {
context?: Context;
skipGroupOnError?: boolean;
throwOnFullBatchFailure?: boolean;
};Note: processInParallel is not available for FIFO processors - they process sequentially.
SqsFifoPartialProcessor: Synchronous record handlers, no async operations.
SqsFifoPartialProcessorAsync: Async operations (API calls, database queries, etc.).