faaskeeper
faaskeeper copied to clipboard
Indirect output communication
Our current communication between FK functions and clients relies on clients being able to listen on a TCP socket. Unfortunately, this requires clients to have a public IP and not behind a NAT.
An alternative solution would be to use a cloud queue. Clients perform long polling to read messages from writer, watch and heartbeat function.
- [x] Allocate new SQS queue.
- [x] Change distributor and watch functions to send notifications using the queue.
- [ ] Change heartbeat function to use the queue to send messages and receive a reply.
- [ ] Allocate dynamically SQS queues for new clients.
- [x] Modify client libraries to read messages intended only for this client instead of reading TCP socket.
@mcopik I think we have clientQueue . Do we need to create a new SQS queue ?