Skip to content

feat(sentiment): move sentiment brands from apps to daily-api#3638

Merged
idoshamun merged 4 commits intomainfrom
eng-845-move-the-sentiment-brands-from-apps-to-daily-api
Feb 26, 2026
Merged

feat(sentiment): move sentiment brands from apps to daily-api#3638
idoshamun merged 4 commits intomainfrom
eng-845-move-the-sentiment-brands-from-apps-to-daily-api

Conversation

@idoshamun
Copy link
Member

Summary

  • add SentimentGroup and SentimentEntity TypeORM entities to store sentiment brand metadata in API
  • add migration CreateSentimentEntities1772300000000 to create tables, indexes, FK, and seed 2 groups + 19 entities from current Arena config
  • expose new GraphQL query sentimentGroups with SentimentGroupMeta/SentimentEntityMeta and resolve it via GraphORM using read replica mode
  • register new GraphORM mappings for sentiment metadata tables
  • add integration tests for sentimentGroups covering populated, empty, and correct group nesting behavior

Key Decisions

  • kept sentiment time-series/highlights flow unchanged; frontend can join existing Yggdrasil sentiment responses with sentimentGroups metadata client-side
  • used TypeORM relation metadata (@OneToMany/@ManyToOne + explicit @JoinColumn) so GraphORM can auto-detect relations without custom relation config
  • seeded exact IDs for the two groups to preserve compatibility with existing apps Arena group IDs

Issue: https://linear.app/dailydev/issue/ENG-845/move-the-sentiment-brands-from-apps-to-daily-api

Closes ENG-845


Created by Huginn 🐦‍⬛

@pulumi
Copy link

pulumi bot commented Feb 26, 2026

🍹 The Update (preview) for dailydotdev/api/prod (at c8ae0de) was successful.

✨ Neo Explanation

This is a standard application release rolling out a new build to all 7 services and 32 cron jobs on the cluster, along with fresh database and ClickHouse migration jobs to apply any schema changes included in the new version.

Root Cause Analysis

A new version of the application has been deployed. Every service and cron job is being updated to point to the new container image, replacing the previous build across the entire platform.

Dependency Chain

The new container image tag propagates uniformly to all workloads:

  • 7 Deployments (API, background workers, WebSocket, Temporal, private, personalized digest, worker jobs) are rolling out the new image, which Kubernetes will handle via a rolling update — no downtime expected.
  • 32 CronJobs are updated to reference the new image, so future scheduled runs will use the new code.
  • 2 migration Jobs (PostgreSQL DB migration + ClickHouse migration) from the previous release are deleted, and 2 new equivalents are created for the new release — these run the database schema migrations for this deployment.

Risk analysis

No stateful resources (databases, storage buckets, persistent volumes) are being replaced or deleted. The migration Jobs are ephemeral by design and are replaced each deploy. Deployments use rolling updates, so there is no expected downtime.

Resource Changes

    Name                                                       Type                           Operation
+   vpc-native-api-db-migration-77826c9a                       kubernetes:batch/v1:Job        create
~   vpc-native-update-trending-cron                            kubernetes:batch/v1:CronJob    update
~   vpc-native-check-analytics-report-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-post-analytics-clickhouse-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-ws-deployment                                   kubernetes:apps/v1:Deployment  update
~   vpc-native-update-highlighted-views-cron                   kubernetes:batch/v1:CronJob    update
~   vpc-native-bg-deployment                                   kubernetes:apps/v1:Deployment  update
~   vpc-native-user-profile-analytics-clickhouse-cron          kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-images-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-validate-active-users-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-hourly-notification-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-daily-digest-cron                               kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-gifted-plus-cron                          kubernetes:batch/v1:CronJob    update
~   vpc-native-update-source-public-threshold-cron             kubernetes:batch/v1:CronJob    update
~   vpc-native-sync-subscription-with-cio-cron                 kubernetes:batch/v1:CronJob    update
-   vpc-native-api-db-migration-17b923bd                       kubernetes:batch/v1:Job        delete
~   vpc-native-generate-search-invites-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-private-deployment                              kubernetes:apps/v1:Deployment  update
~   vpc-native-expire-super-agent-trial-cron                   kubernetes:batch/v1:CronJob    update
+   vpc-native-api-clickhouse-migration-77826c9a               kubernetes:batch/v1:Job        create
~   vpc-native-temporal-deployment                             kubernetes:apps/v1:Deployment  update
~   vpc-native-update-source-tag-view-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-stale-user-transactions-cron              kubernetes:batch/v1:CronJob    update
~   vpc-native-post-analytics-history-day-clickhouse-cron      kubernetes:batch/v1:CronJob    update
~   vpc-native-update-achievement-rarity-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-users-cron                         kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-updated-sync-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-generic-referral-reminder-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-squad-posts-analytics-refresh-cron              kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-opportunities-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-user-posts-analytics-refresh-cron               kubernetes:batch/v1:CronJob    update
~   vpc-native-update-tag-recommendations-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-update-current-streak-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-personalized-digest-deployment                  kubernetes:apps/v1:Deployment  update
~   vpc-native-worker-job-deployment                           kubernetes:apps/v1:Deployment  update
-   vpc-native-api-clickhouse-migration-17b923bd               kubernetes:batch/v1:Job        delete
~   vpc-native-clean-zombie-user-companies-cron                kubernetes:batch/v1:CronJob    update
~   vpc-native-update-tags-str-cron                            kubernetes:batch/v1:CronJob    update
~   vpc-native-update-views-cron                               kubernetes:batch/v1:CronJob    update
... and 4 other changes

@idoshamun idoshamun merged commit e16d8e9 into main Feb 26, 2026
9 checks passed
@idoshamun idoshamun deleted the eng-845-move-the-sentiment-brands-from-apps-to-daily-api branch February 26, 2026 11:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant