Double Buffering met Cloudflare Queues

Mijn pipeline maakt gebruik van Cloudflare Workers, Queues, Workflows en R2 om telemetrie-events vast te leggen, te batchen, te verwerken en op te slaan, terwijl de voordelen van de prijsstelling van Cloudflare maximaal worden benut. Modulo-berekeningen worden gebruikt om de payload naar de actieve queue te routeren en vervolgens om de inactieve queue te legen. UTC wordt gebruikt om problemen met de zomertijd (DST) te voorkomen.

Producer

De producer evalueert de tijdstempel van de payload om het bericht naar de actieve queue te routeren.

Consumer

De consumer-taak wordt elk uur op het halve uur geactiveerd om de inactieve queue te legen. De consumer-taak kijkt één uur terug om te bepalen welke queue momenteel inactief is en veilig kan worden geconsumeerd.

Ten slotte wordt de batch gecomprimeerd en naar R2 geschreven met behulp van een eenvoudige partitioneringsstrategie.

Conclusie

Dit patroon transformeert chaotische streams van telemetrie in een gecomprimeerd uurarchief. Je krijgt een gepartitioneerde, serverless data lake die is geoptimaliseerd voor downstream-analyses, terwijl je cloudopslagkosten extreem laag blijven.