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
This commit is contained in:
Naeel
2026-04-10 16:47:27 +03:00
commit c3ba2dcae4
81 changed files with 14253 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
# 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*