Files
SQS-service/doc/progress.md
T
Naeel c3ba2dcae4 chore: initial import from sless/shared-sqs (v0.1.14)
- Standalone SQS-service repository
- Multi-tenant message queue service, AWS SQS compatible
- Based on GoAws, with mutable tenants, auth, WebUI, Redis persistence
- Ready for independent development and deployment
- See doc/ and README.md for architecture and usage
2026-04-10 16:47:27 +03:00

3.0 KiB
Raw Blame History

SQS-service Progress

Версага v0.1.x

v0.1.14 (2026-04-10)

  • Фикс критического дедлока в create_queue.go (deadlock после первого CreateQueue)
  • Фикс UI: m.sentm.sent_at (даты сообщений всегда показывали dash)
  • Redis write-through persistence запущен
  • TLS Ingress: qu.kube5s.ru185.247.187.151
  • Нагрузочный тест Harbor: 4757 запросов, 99% успех, p95=332ms
  • Status: Production-ready для демо, готов к выводу за скобки в отдельный репо

Next Steps

  • Migration guide: как обновить сервис на v0.1.14
  • Load testing shared-sqs (текущая реализация имеет глобальный мьютекс)
  • DLQ (Dead Letter Queue) поддержка
  • Long Polling оптимизация
  • Rate limiting per tenant

Known Limitations

  1. Глобальный мьютекс — SyncQueues.Lock() на весь сервис. Performance bottleneck.
  2. Нет DLQ — failed messages теряются
  3. Long Polling naïve — polling каждую 100ms вместо push-based
  4. Нет rate limiting — один тенант может забить всех
  5. Single pod — нет горизонтального масштабирования
  6. Нет метрик — Prometheus экспортер отсутствует

Architecture

SQS-service/
├── app/
│   ├── cmd/main.go              — точка входа
│   ├── models/model.go          — Queue, Message, Tenant структуры
│   ├── gosqs/*.go               — реализация SQS API операций
│   ├── admin/admin.go           — Admin API (Create/List/Get Tenant)
│   ├── tenant/tenant.go         — Multi-tenant изоляция
│   ├── auth/auth.go             — AWS Signature V4 верификация
│   ├── persistence/redis.go     — Redis adapter для persistence
│   ├── router/router.go         — HTTP маршруты
│   └── ui/index.html            — Web Console
├── deployments/k8s/             — Kubernetes манифесты
├── tests/                       — E2E тесты
└── doc/                         — Документация

Technology Stack

  • Language: Go 1.22
  • HTTP Server: Go std net/http
  • Auth: AWS Signature V4
  • Storage: Redis (write-through)
  • Container: Docker
  • Orchestration: Kubernetes
  • DNS: Ingress с TLS

Demo Credentials (read-only для тестирования)

Access Key: SSAK-demo-shared-sqs
Secret Key: demo-secret-key-shared-sqs-ngcloud-2026
Endpoint: https://qu.kube5s.ru

Deployment

# Kubernetes
kubectl apply -k deployments/k8s/

# Docker (local)
docker run -p 9090:9090 naeel/shared-sqs:v0.1.14

Last updated: 2026-04-10