update: wpb-22590 documentation for Fake AWS (SNS/SQS) for websocket#98
update: wpb-22590 documentation for Fake AWS (SNS/SQS) for websocket#98mohitrajain merged 4 commits intomainfrom
Conversation
…only notifications (no FCM/APNS)
sghosh23
left a comment
There was a problem hiding this comment.
Overall good, may be you can mention for on-prem this chart might be present in the cluster if they installed the wrapper chart fake-aws, in this case for any existing system they just need to expose the sns/sqs Endpoint to the gundeck config to satisfy the gundeck service.
| If you use the fake-aws version, clients will use the websocket method to receive notifications, which keeps connections to the servers open, draining battery. | ||
|
|
||
| Open a terminal and run: | ||
| To enable **websocket-only notifications** (no FCM/APNS), you must: |
There was a problem hiding this comment.
May be its a good idea to put some context why must and what does the fakeAWS do here? (i.e, for initialization of the gundeck service by design)
There was a problem hiding this comment.
I have added 2 more sections:
What is the fake-aws Helm chart?
Why are these Helm charts required when not using APNS/FCM?
There was a problem hiding this comment.
you should make clear that websocket only notifications are only available for the android client
| account: "123456789012" | ||
| region: "eu-west-1" | ||
| arnEnv: integration | ||
| queueName: integration-gundeck-events |
There was a problem hiding this comment.
account, arnEnv, region, queueName can be any string value i guess
There was a problem hiding this comment.
These should follow AWS expected values https://hackage.haskell.org/package/amazonka-1.4.5/docs/Network-AWS.html#t:Credentials, having default should be good.
sghosh23
left a comment
There was a problem hiding this comment.
@mohitrajain good work, added two more comments, please take a look. Let me know if you have any open questions regarding the comment.
src/how-to/install/helm-prod.md
Outdated
|
|
||
| ### Why are these Helm charts required when not using APNS/FCM? | ||
|
|
||
| Even when APNS (Apple Push Notification Service) or FCM (Firebase Cloud Messaging) are not used, the `wire-server` component **gundeck** still depends on SNS and SQS APIs for handling notifications and user device events. |
There was a problem hiding this comment.
for handling notifications and user device events is a bit of misleading because I read it like it implies SNS/SQS play an active role at runtime even without FCM/APNS but they don't.
SNS and SQS are exclusively for native push (FCM/APNS delivery feedback — cleaning up stale tokens). They have zero involvement in websocket-based notification delivery
The truth based on the evidence is: Gundeck unconditionally requires SNS and SQS endpoints to be reachable at startup — even when FCM/APNS are not used because these are hardcoded non-optional config fields with no feature flag to disable them
I would suggest to change the statement or remove it
There was a problem hiding this comment.
Confirming with backend team on this behaviour
src/how-to/install/helm-prod.md
Outdated
|
|
||
| Even when APNS (Apple Push Notification Service) or FCM (Firebase Cloud Messaging) are not used, the `wire-server` component **gundeck** still depends on SNS and SQS APIs for handling notifications and user device events. | ||
|
|
||
| When running in websocket-only mode, `gundeck` must still interact with SNS and SQS endpoints. Therefore, these APIs need to be mocked privately inside the Kubernetes cluster. The `fake-aws` Helm chart provides these mocked services so that `gundeck` can function correctly without connecting to real AWS infrastructure. |
There was a problem hiding this comment.
fake-aws is a group of charts not a single chart. If you want to be more specific
fake-aws-sqs (ElasticMQ) — mocks the SQS API
fake-aws-sns (Localstack) — mocks the SNS API
There was a problem hiding this comment.
I have added the links to the chart above and added definitions as well on line 132
- fake-aws-sns – a dummy, ephemeral SNS service based on LocalStack. LocalStack allows you to use the SNS APIs in your local environment to coordinate the delivery of messages to subscribing endpoints or clients.
- fake-aws-sqs – a dummy, ephemeral SQS service that mocks the Amazon SQS API.
| If you use the fake-aws version, clients will use the websocket method to receive notifications, which keeps connections to the servers open, draining battery. | ||
|
|
||
| Open a terminal and run: | ||
| To enable **websocket-only notifications** (no FCM/APNS), you must: |
There was a problem hiding this comment.
you should make clear that websocket only notifications are only available for the android client
src/how-to/install/helm-prod.md
Outdated
| - **fake-aws-sns** – a dummy, ephemeral SNS service based on LocalStack. LocalStack allows you to use the SNS APIs in your local environment to coordinate the delivery of messages to subscribing endpoints or clients. | ||
| - **fake-aws-sqs** – a dummy, ephemeral SQS service that mocks the Amazon SQS API. | ||
|
|
||
| Both services include lightweight custom initialization logic required for Wire’s internal service-to-service communication. They are not intended to replace real AWS in production with native push, but to provide compatible SNS/SQS APIs inside the cluster for websocket-only setups. |
There was a problem hiding this comment.
only SQS is relevant for inter-service-communication.
SNS is just a mock so the gundeck service has an endpoint to use
Update documentation for Fake AWS (SNS/SQS) for websocket only notifications (no FCM/APNS)
Change type
Basic information
Testing
Tracking