Commit Graph

190 Commits

Author SHA1 Message Date
Jon Chambers
6845ba9b90 Remove legacy DisconnectRequested protobuf entity 2024-11-12 11:54:36 -05:00
Jon Chambers
2f890f7bb3 Send push notifications if we receive a "new message" notification, but no listener is present 2024-11-12 09:34:59 -05:00
Jon Chambers
3fefb24d71 Retire the legacy disconnection request system 2024-11-12 09:09:05 -05:00
Jon Chambers
09fd5e8819 Shift authority for disconnection requests to DisconnectionRequestManager 2024-11-11 16:27:38 -05:00
Jon Chambers
a843f1af6c Rename PubSubClientEventManager to WebSocketConnectionEventManager 2024-11-11 15:30:26 -05:00
Jon Chambers
2da00e162a Resolve a merge-related naming conflict 2024-11-11 11:47:00 -05:00
Jon Chambers
767f6a90e0 Remove subscriptions if we get pub/sub events without a registered listener 2024-11-11 11:42:01 -05:00
Jon Chambers
562b495a18 Publish "messages persisted" events when unlocking queues after a persistence run 2024-11-11 11:41:29 -05:00
Jon Chambers
084607f359 Retire the explicit "handle new message available" system in favor of implicit presence-on-insert values 2024-11-11 11:41:29 -05:00
Jon Chambers
eeeb565313 Return destination client presence when inserting messages 2024-11-11 11:41:29 -05:00
Jon Chambers
6a1f4906c5 Retire the legacy message availability system 2024-11-07 12:09:21 -05:00
Jon Chambers
e536a40740 Publish "messages persisted" events 2024-11-07 11:25:48 -05:00
Jon Chambers
1c167ec150 Retire the legacy client presence system 2024-11-06 14:57:27 -05:00
Jon Chambers
96a4d4c8ac Prepare to receive client events about persisted messages 2024-11-06 14:42:55 -05:00
Jon Chambers
9d19fc9ecc Shift authority to the new pub/sub client presence system 2024-11-06 12:10:44 -05:00
Jon Chambers
ca7e7c288e Format pub/sub hash tags consistently with message-related hash tags 2024-11-06 09:35:45 -05:00
Jon Chambers
3e36a49142 Reframe "connection ID" as "server ID" to avoid double-removing clients 2024-11-05 18:43:31 -05:00
Jon Chambers
8c984cbf42 Introduce and evaluate a client presence manager based on sharded pub/sub 2024-11-05 15:51:29 -05:00
Chris Eager
c2270e57df Reduce log level for existing pending presence 2024-10-17 11:47:18 -05:00
Chris Eager
830a07012b Subscribe to remote presence changes before setting the key 2024-10-15 16:54:52 -05:00
Jon Chambers
a9117010f9 Introduce FaultTolerantRedisClient 2024-10-09 09:22:10 -04:00
Jon Chambers
92698efd39 Remove machinery for setting/storing APNs VOIP tokens 2024-10-01 14:17:39 -04:00
Jon Chambers
b693cb98d0 Remove recurring background VOIP notification machinery 2024-10-01 14:17:39 -04:00
Jon Chambers
b2211de8d8 Retire ProvisioningAddress and WebsocketAddress 2024-10-01 12:59:58 -04:00
Chris Eager
374fe087bc Use destination service ID from the envelope when removing views from shared MRM data 2024-09-16 13:19:11 -05:00
Chris Eager
b95a766888 For ephemeral messages, remove recipient view from shared MRM data if recipient is offline 2024-09-05 18:02:33 -05:00
Chris Eager
11601fd091 Multi-recipient message views
This adds support for storing multi-recipient message payloads and recipient views in Redis, and only fanning out on delivery or persistence. Phase 1: confirm storage and retrieval correctness.
2024-09-04 13:58:20 -05:00
Jon Chambers
659ac2c107 Generalize push notification scheduler and add support for delayed "new messages" notifications 2024-08-16 16:16:55 -04:00
Jon Chambers
1af8bb494e Generalize "is idle?" check in idle device notification scheduler 2024-08-05 15:19:39 -04:00
Jon Chambers
045ec9689d Introduce a job scheduler and experiment for sending notifications to idle devices 2024-07-29 11:16:53 -04:00
Jon Chambers
37369929f3 Retire PushLatencyManager 2024-07-17 15:01:23 -04:00
Jon Chambers
6d166fdfc5 Return futures from "send push notification" operations 2024-07-08 15:36:17 -04:00
ravi-signal
0c81ffe8b7 Count unregistered APNS tokens with a recent update 2024-07-08 15:27:48 -04:00
Jon Chambers
02b9ceb4c7 Discard APNs tokens if the APNs server reports that the token is expired 2024-07-08 15:27:23 -04:00
Jon Chambers
2f76738b50 Expire APNs tokens if they haven't been updated since the expiration timestamp 2024-06-25 11:53:23 -04:00
Jon Chambers
1cf174a613 Include "token invalidation timestamp" in push notification responses 2024-06-25 11:53:23 -04:00
Jon Chambers
1cd16eaa08 Delete FCM tokens immediately if FCM reports that they're no longer active 2024-06-25 11:53:23 -04:00
Jon Chambers
cb5cd64c05 Gracefully handle NotPushRegisteredException 2024-06-25 11:23:16 -04:00
Jon Chambers
5fc926271f Remove a metrics tag for "has spam reporting token" 2024-06-12 13:53:33 -04:00
Chris Eager
0e4be0c85a Add tests for WhisperServerService#run
Additionally, `LocalWhisperServerService` may be used for integration testing.
2024-04-29 11:05:35 -05:00
Jon Chambers
9d3e3c7312 Use a common utility for turning Google API futures into CompletableFutures 2024-04-26 15:27:59 -04:00
Chris Eager
a38bf25e68 Migrate remaining custom metrics from Dropwizard to Micrometer
And remove some that are obsolete or duplicative.
2024-04-17 15:35:04 -05:00
Chris Eager
2dc707d86e Add per-shard Redis circuit breakers 2024-04-12 11:22:41 -05:00
ravi-signal
2adf1e5017 Avoid modification of Account from @ReadOnly endpoint 2024-02-28 15:18:12 -06:00
Jon Chambers
34a943832a Align push notification types and delivery priorities 2023-12-06 12:40:16 -05:00
Jon Chambers
db17693ba7 Revert "Temporarily make registration challenge notifications "noisy""
This reverts commit 9069c5abb6.
2023-12-06 12:40:16 -05:00
Jon Chambers
00e72a30c9 Assume all accounts have primary devices 2023-12-06 10:28:19 -05:00
Jon Chambers
9069c5abb6 Temporarily make registration challenge notifications "noisy" 2023-11-22 10:25:59 -05:00
Jon Chambers
ff7a5f471b Always use "conserve power" priority for challenge notifications 2023-11-21 17:58:32 -05:00
Katherine
d4ef2adf0a Remove low priority attempt login notification workaround for old iOS clients 2023-11-13 12:06:55 -05:00