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

80 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SQS-service Progress
## Версага v0.1.x
### v0.1.14 (2026-04-10) ✅
- ✅ Фикс критического дедлока в `create_queue.go` (deadlock после первого CreateQueue)
- ✅ Фикс UI: `m.sent``m.sent_at` (даты сообщений всегда показывали dash)
- ✅ Redis write-through persistence запущен
- ✅ TLS Ingress: `qu.kube5s.ru``185.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
```bash
# Kubernetes
kubectl apply -k deployments/k8s/
# Docker (local)
docker run -p 9090:9090 naeel/shared-sqs:v0.1.14
```
---
*Last updated: 2026-04-10*