rock
cd3d00048a
feat: M8.2 Gateway Queue Adapter for SQS via api.riotpiao.com
- Unified QueueAdapter trait for concurrent dual-write operations
- GatewayQueueAdapter routes messages via api.riotpiao.com with X-Service: sqs header
- TokenProvider abstraction: StaticTokenProvider + AuthentikTokenProvider
- JWT bearer token support (from Authentik OAuth2)
- InMemoryQueueAdapter for testing
- Base64 encoding/decoding for SQS message bodies
- HTTP/REST integration (no direct gRPC complexity)
- 8 unit tests + comprehensive documentation
- Supports long-polling (ReceiveMessage), visibility timeout, DLQ
Uses standard SQS API patterns:
- SendMessage: Queue chunk for dual-write processing
- ReceiveMessage: Long-poll up to 10 messages, 20s wait
- DeleteMessage: Acknowledge on success
- ChangeMessageVisibility: Retry on failure
- SendToDLQ: After max retries
Files:
- crates/mem-cli/src/queue_adapter.rs (310 LOC)
- crates/mem-cli/src/gateway_queue_adapter.rs (530 LOC)
- tests/it_gateway_queue_adapter.rs (110 LOC)
- docs/M8.2-GATEWAY_QUEUE_ADAPTER.md (400 LOC)
2026-08-28 13:11:56 -07:00
..
2026-08-23 00:32:27 -07:00
2026-08-22 23:13:42 -07:00
2026-08-22 23:13:42 -07:00
2026-08-28 09:30:48 -07:00
2026-08-26 13:55:37 -07:00
2026-08-23 09:42:09 -07:00
2026-08-27 12:54:50 -07:00
2026-08-22 23:13:42 -07:00
2026-08-27 20:36:57 -07:00
2026-08-22 23:13:42 -07:00
2026-08-22 23:13:42 -07:00
2026-08-22 23:13:42 -07:00
2026-08-22 23:13:42 -07:00
2026-08-28 13:11:56 -07:00
2026-08-22 23:13:42 -07:00
2026-08-22 23:13:42 -07:00
2026-08-23 16:33:34 -07:00
2026-08-27 12:29:23 -07:00
2026-08-27 12:29:23 -07:00
2026-08-22 23:13:42 -07:00
2026-08-22 23:13:42 -07:00
2026-08-23 00:32:27 -07:00
2026-08-22 23:13:42 -07:00
2026-08-23 17:19:42 -07:00
2026-08-28 12:49:34 -07:00
2026-08-22 23:13:42 -07:00
2026-08-28 13:11:56 -07:00
2026-08-27 20:48:37 -07:00
2026-08-24 01:37:16 +00:00
2026-08-22 23:13:42 -07:00
2026-08-23 17:19:42 -07:00
2026-08-28 08:24:38 -07:00
2026-08-23 17:19:42 -07:00
2026-08-22 23:13:42 -07:00
2026-08-23 17:19:42 -07:00
2026-08-22 23:13:42 -07:00
2026-08-26 13:35:50 -07:00
2026-08-27 20:54:43 -07:00
2026-08-24 01:45:47 +00:00
2026-08-28 07:46:36 -07:00
2026-08-26 13:50:22 -07:00
2026-08-23 17:19:42 -07:00
2026-08-28 08:08:55 -07:00
2026-08-22 23:13:42 -07:00
2026-08-27 21:35:07 -07:00
2026-08-22 23:13:42 -07:00
2026-08-28 13:11:56 -07:00