mirror of
https://github.com/block/buzz.git
synced 2026-10-27 20:41:57 +00:00
Buzz must schedule mobile push notifications when it saves an eligible message. The relay, the server that receives and stores messages, now does this in application code. An older database trigger still exists. This trigger is a rule that runs automatically when a message is saved. This PR removes the old trigger and its supporting database function. The relay remains responsible for scheduling notifications. Migration 0063 makes this change in existing databases; updated setup scripts apply it to new databases. The change does not turn on push notifications. Production migration and deployment need separate approval. Before deployment, verify the release images and all pending database migrations. If push needs to be stopped after release, disable it with the feature flag and keep the qualified application version and database schema. Do not downgrade the application image. ### Validation - Local checks passed: 519 isolated database integration tests, 166 database unit tests, 17 source-policy tests, and the relay push-runtime tests. - Tests verify that the migration removes the old trigger, preserves earlier migration records, and lets the application schedule push work correctly. A concurrency test exercises the real application path; deliberately removing its lock makes the test fail. - [Current-head CI passed on retry](https://github.com/block/buzz/actions/runs/38752849383/attempts/2). The first attempt had one database-connection timeout during test setup; the failed jobs passed when rerun on the unchanged commit. - Initial local CI and push checks hit unrelated ACP test failures, which passed when run separately. Only the Rust-test push hook was skipped under the repository's local-check exception; other applicable hooks passed. ### Before merge - [x] Migration 0063 is available and the push trigger remains on [main at5397ea4](5397ea49e2). Recheck if main advances before merge. --------- Signed-off-by: Tom Brow <tomb@block.xyz>
13 lines
636 B
SQL
13 lines
636 B
SQL
-- Push matching is produced by the application after event commit. Retire
|
|
-- only its compatibility trigger; channel-TTL refresh remains unchanged.
|
|
-- All event writers and rollback targets must support application enqueueing
|
|
-- before this migration runs. Published migrations remain checksum-frozen.
|
|
--
|
|
-- DROP TRIGGER locks the partitioned parent and its partitions. Bound the
|
|
-- lock acquisition wait. This does not bound statement duration or the time
|
|
-- ingestion can be blocked while these locks are held.
|
|
SET LOCAL lock_timeout = '5s';
|
|
|
|
DROP TRIGGER events_enqueue_push_match ON events;
|
|
DROP FUNCTION enqueue_push_match_job();
|