feat: publish canonical highlight events#3953
Conversation
|
🍹 The Update (preview) for dailydotdev/api/prod (at 7863b38) was successful. ✨ Neo Code ReviewThis change wires up a new real-time highlights pipeline: Debezium now captures `highlights_canonical` table changes and routes them through a new Pub/Sub topic/subscription to a Redis broadcast worker. The Debezium Secret replacement causes a brief CDC pause (Recreate strategy), but no event data loss is expected due to WAL replication. ✅ Low Risk with a minor transient ingestion gap during Debezium restart.This PR introduces real-time highlight broadcasting: when a The infrastructure changes reflect three distinct concerns: Routine: All deployments and cron jobs are rolling to the new image digest ( New Pub/Sub subscription ( 🟡 Warning — 🔵 Info — The Resource Changes Name Type Operation
+ vpc-native-api-db-migration-a0bce9e0 kubernetes:batch/v1:Job create
~ vpc-native-private-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-post-analytics-history-day-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-generate-search-invites-cron kubernetes:batch/v1:CronJob update
~ vpc-native-post-analytics-achievements-cron kubernetes:batch/v1:CronJob update
+ vpc-native-api-clickhouse-migration-a0bce9e0 kubernetes:batch/v1:Job create
~ vpc-native-personalized-digest-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-views-cron kubernetes:batch/v1:CronJob update
~ vpc-native-ws-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-update-current-streak-cron kubernetes:batch/v1:CronJob update
~ vpc-native-rotate-weekly-quests-cron kubernetes:batch/v1:CronJob update
~ vpc-native-rotate-daily-quests-cron kubernetes:batch/v1:CronJob update
+ api-sub-api.new-highlight-real-time gcp:pubsub/subscription:Subscription create
+- vpc-native-debezium-deployment kubernetes:apps/v1:Deployment create-replacement
~ vpc-native-clean-expired-better-auth-sessions-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-trending-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-profile-updated-sync-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-tags-str-cron kubernetes:batch/v1:CronJob update
~ vpc-native-temporal-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-clean-zombie-users-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-stale-user-transactions-cron kubernetes:batch/v1:CronJob update
+- vpc-native-debezium-props kubernetes:core/v1:Secret create-replacement
~ vpc-native-validate-active-users-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-tag-materialized-views-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-user-companies-cron kubernetes:batch/v1:CronJob update
~ vpc-native-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-user-profile-analytics-history-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-channel-digests-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-opportunities-cron kubernetes:batch/v1:CronJob update
~ vpc-native-generic-referral-reminder-cron kubernetes:batch/v1:CronJob update
~ vpc-native-daily-digest-cron kubernetes:batch/v1:CronJob update
~ vpc-native-calculate-top-readers-cron kubernetes:batch/v1:CronJob update
~ vpc-native-sync-subscription-with-cio-cron kubernetes:batch/v1:CronJob update
~ vpc-native-expire-super-agent-trial-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-achievement-rarity-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-gifted-plus-cron kubernetes:batch/v1:CronJob update
- vpc-native-api-clickhouse-migration-00a7c1bc kubernetes:batch/v1:Job delete
~ vpc-native-check-analytics-report-cron kubernetes:batch/v1:CronJob update
~ vpc-native-hourly-notification-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-channel-highlights-cron kubernetes:batch/v1:CronJob update
~ vpc-native-materialize-yearly-best-post-archives-cron kubernetes:batch/v1:CronJob update
... and 17 other changes |
7a34ce9 to
7863b38
Compare
Summary
Publishes canonical highlight CDC changes on the existing
api.v1.post-highlightedtopic using the newHighlightsCanonicalPublishedMessagepayload.Changes included:
public.highlights_canonicalto the Debezium table include listchannelsstate andpublished_channelsdelta in the payloadapi.v1.post-highlightedtopic@dailydotdev/schemato0.3.11Related PRs
Dependency
@dailydotdev/schema@0.3.11is published and includesHighlightsCanonicalPublishedMessage.Because the package was published today, this PR temporarily adds
@dailydotdev/schematominimumReleaseAgeExcludeinpnpm-workspace.yaml, following the repo README guidance for urgent dependency updates.Validation
pnpm exec prettier --write ...on touched TS filespnpm run build