Action Push Native는 37signals가 클라우드 의존도를 줄이기 위해 Amazon SNS 및 Pinpoint를 대체할 목적으로 개발되었습니다. 현재 Basecamp와 HEY 서비스에서 하루 1천만 건 이상의 푸시 알림을 문제없이 전송하며 안정성을 입증했습니다.
주요 특징 및 작동 방식
-
직접 연결: Apple (APNs) 및 Google (FCM) 푸시 알림 서비스에 직접 연결하여 작동합니다.
-
HTTP/2 활용: Apple Push Notification service에는 HTTP/2 영구 연결을 사용하여 기존 HTTP/1 기반의 AWS Pinpoint 설정 대비 작업 시간을 크게 단축했습니다.
-
자동화된 관리:
- 재시도(Retries): 알림 전송 실패 시 자동으로 재시도합니다.
- 속도 제한(Rate-limiting): 각 서비스의 속도 제한 정책을 준수하여 과도한 요청을 방지합니다.
- 비활성 기기 삭제(Deleting dead devices): 더 이상 유효하지 않은 기기 토큰을 자동으로 식별하고 삭제합니다.
사용 예시
젬을 사용하려면 각 플랫폼에 대한 인증 정보를 설정한 후, 다음과 같이 알림을 전송할 수 있습니다.
ruby
device = ApplicationPushDevice.create! \
name: "iPhone 16",
token: "6c267f26b173cd9595ae2f6702b1ab560371a60e7c8a9e27419bd0fa4a42e58f",
platform: "apple"
notification = ApplicationPushNotification.new \
title: "Hello world!",
body: "Welcome to Action Push Native"
notification.deliver_later_to(device)
현재 버전 0.1.0이 GitHub를 통해 공개되어 있으며, 자세한 내용은 GitHub 저장소에서 확인할 수 있습니다.