
210
이벤트 기반 마이크로서비스 구축
함수 결과는 데이터 출력뿐만 아니라 함수의 성공을 추적하는 용도로 자신의 이벤트 스트림에
출력할 수 있습니다.
동기식으로 트리거하려면 함수가 다음 이벤트를 발행하기 전에 완료되어야 합니다. 처리 순서
를 유지하려면 반드시 그렇게 처리해야 하므로 이벤트 스트림을 병렬 처리하는 데 제약이 따릅
니다. 반대로 비동기 트리거를 사용하면 여러 함수에 여러 이벤트를 전달할 수 있고 각 함수는
작업을 마친 후 다시 결과를 보고합니다. 하지만 이렇게 하면 처리 순서는 유지되지 않기 때문
에 비즈니스 로직상 처리 순서가 별로 중요하지 않은 경우에만 사용해야 합니다.
배치 크기
batch
size
와 배치 윈도
batch
window
는 스트림 리스너 트리거에서 중요한 속성입니다. 배치
크기는 최대 몇 개의 이벤트를 처리하라고 보낼 것인가, 배치 윈도는 함수를 바로 트리거하지
않고 추가 이벤트를 최대 얼마나 오랫동안 기다릴 것인가를 각각 의미합니다. 두 매개변수는
함수를 시작하는 오버헤드를 여러 레코드에 분산시켜 비용을 줄이기 위해 사용합니다.
다음 코드는 스트림 리스너 트리거가 실행하는 함수 예제입니다.
public int myEventfunction(Event[] events, Context context) {
for(Event event: ...