Pulsar Functions 개요
Pulsar Functions 개요 (Pulsar Functions Overview)
메시지를 받아서 그대로 전달만 하는 게 아니라, 처리 로직을 넣어 변환하고 싶을 때가 많아요. Pulsar Functions는 Pulsar 위에서 도는 서버리스 컴퓨팅 프레임워크로, 이런 처리를 경량으로 해줘요. 함수 하나를 배포하면 메시지 소비·처리·발행의 저수준 세부사항은 Pulsar가 알아서 처리하니, 개발자는 비즈니스 로직에만 집중하면 돼요.
본문
Pulsar Functions란 무엇인가
Pulsar Functions는 Pulsar 위에서 도는 서버리스 컴퓨팅 프레임워크로, 메시지를 다음과 같은 방식으로 처리해요.
- 하나 이상의 토픽에서 메시지를 소비(consume)하고,
- 사용자가 정의한 처리 로직을 메시지에 적용(apply)하고,
- 메시지의 결과를 다른 토픽으로 발행(publish)해요.
함수가 메시지를 받을 때마다 이 consume → apply → publish 3단계를 완료해요.
- 하나 이상의 입력 토픽(input topics) 에서 메시지를 소비해요.
- 사용자가 제공한 처리 로직을 메시지에 적용해요.
- 메시지의 출력을 발행해요. 결과를 출력 토픽(output topic) 에 쓰고, 설정했다면 디버깅용 로그 토픽(log topic) 에도 써요.
예를 들어 파이프라인을 이렇게 만들 수 있어요. raw-sentences 토픽을 리슨하는 Python 함수가 문자열을 "정화"(불필요한 공백 제거, 문자를 소문자로 변환)해서 sanitized-sentences 토픽으로 내보내요. 그 토픽을 리슨하는 Java 함수가 지정된 시간 윈도우 안에서 단어가 등장한 횟수를 세어 results 토픽으로 보내요. 마지막으로 results 토픽을 리슨하는 Python 함수가 그 결과를 MySQL 테이블에 써요.
왜 Pulsar Functions를 쓰나
Pulsar Functions는 메시지를 컨슈머로 라우팅하기 전에 메시지에 간단한 계산을 수행해요. Pulsar에 특화되어 설계된 Lambda 스타일 함수예요. 프레임워크가 Pulsar 클러스터 위에서 간단한 컴퓨팅 프레임워크를 제공하고, 메시지 송수신의 저수준 세부사항은 알아서 처리해줘요. 그래서 Pulsar에 이미 익숙한 개발자라면 별도의 독립 컴퓨팅 시스템 없이도 스트림 안에서 가볍게 데이터를 가공할 수 있어요.
다음 단계
함수를 더 깊이 보려면 Function concepts와 Function CLIs and configs 문서를 보면 돼요. 개발자라면 함수를 개발 → 디버그 → 패키징 → 배포 순서로 익히면 되고, 운영자라면 함수 워커(function workers) 설정 → 함수 런타임 구성 → 함수 배포 순서로 진행하면 돼요.
더 알아보기
- 메시지가 어떻게 토픽에 오가는지는 Messaging 문서에서 다뤄요.
- 함수가 메시지를 주고받을 때 쓰는 클라이언트 동작은 Pulsar Clients 문서를 보면 돼요.
- 함수가 처리할 데이터의 형태를 합의하는 방법은 스키마 이해하기 문서에서 설명해요.