serverless #atproto jetstream to webhook connector, powered by cloudflare durable objects
1export interface JetstreamEvent {
2 did: string;
3 time_us: number;
4 kind: "commit" | "identity" | "account";
5 commit?: {
6 rev: string;
7 operation: "create" | "update" | "delete";
8 collection: string;
9 rkey: string;
10 record?: any;
11 cid?: string;
12 };
13 identity?: {
14 did: string;
15 handle: string;
16 seq: number;
17 time: string;
18 };
19 account?: {
20 active: boolean;
21 did: string;
22 seq: number;
23 time: string;
24 };
25}
26
27export interface StoredStats {
28 cursor: number;
29 eventCounts: Record<string, number>;
30 totalEvents: number;
31 totalReceived: number;
32 lastEventTime: string;
33}
34
35export interface QueueMessage {
36 event: JetstreamEvent;
37 queuedAt: string;
38 retryCount?: number;
39}