Commit Graph
39 Commits
Author SHA1 Message Date
Repinoid e735563a04 doc(P1.2): дизайн индексации сообщений (tombstone + индексы + амортизированная компакция) 2026-10-07 07:56:56 +03:00
Repinoid d53aadecfa doc: P1.2 отложен с обоснованием (после P1.1 O(N) ограничен одной очередью) 2026-10-06 18:59:57 +03:00
Repinoid fd8ffc329d P1.1: per-queue блокировки вместо глобального лока на операции с очередью
Все операции с содержимым очереди (send/receive/delete/visibility/purge/attributes/
tags/admin/gauge/tick) переведены на per-queue RWMutex (QueueStore.GetLocked/
GetRLocked + queue.LockMu). Глобальный SyncQueues-лок остался только для map и
неизменяемых полей. DLQ-переносы берут лок DLQ отдельно (порядок main→DLQ).
marshalQueueMeta больше не мутирует очередь (DTO-снапшот). Устранён дедлок
create_queue (setQueueAttributesV1 вызывается вне глобального лока). Добавлены
конкурентные тесты; go test -race зелёный. Снимает боттлнек: синхронный Redis-I/O
больше не держит глобальный лок.
2026-10-06 18:58:16 +03:00
Repinoid ed17c6cbd0 P1.1 groundwork: per-queue mutex в Queue + анализ блокеров
Добавлены поле mu (не сериализуется) и LockMu/RLockMu-аксессоры в models.Queue;
исправлено копирование Queue by value (numberOfHiddenMessagesInQueue).
Глобальный лок пока используется везде — поведение не менялось.
Задокументированы блокеры полного перехода (DLQ-указатель, мутирующий
marshalQueueMeta, релинк DLQ после загрузки, атомарность перевода).
2026-10-06 18:39:26 +03:00
Repinoid ac06572e25 doc: находка — унаследованные Go-тесты gosqs мёртвые (несовместимы с форком)
Тесты требуют тенанта из контекста и tenant-scoped ключей, а написаны под
дофорковый GoAws. Восстановление app/fixtures + app/test сделает их
компилируемыми, но падающими. Нужны новые тесты под мультитенантное поведение.
2026-10-06 18:07:31 +03:00
Repinoid 6e96a4d007 doc(sqs): подробный план доработок P0/P1/P2 для DeepSeek Flash 2026-10-05 21:38:03 +03:00
Repinoid 9528441c97 doc(sqs): мой критический анализ отчёта Opus (перепроверка по коду) 2026-10-05 21:38:03 +03:00
Repinoid e8ccd8bae1 doc(sqs): промпт для Opus (allowlist файлов) + его отчёт КРАКО и план 2026-10-05 21:38:03 +03:00
“Naeel” 7897fda9e7 doc: тикет — дополнение: таймера 31с внутри кластера нет, он на внешнем шлюзе 2026-08-15 21:28:55 +04:00
“Naeel” 96f6d64184 doc: черновик тикета в Nubes (явления A/B, 6 доказательств); все фазы плана выполнены 2026-08-15 21:17:17 +04:00
“Naeel” 5c2180d40e doc: финал плана (решения зафиксированы) + сравнение четырёх агентов 2026-08-15 15:05:12 +04:00
“Naeel” cd7f5a7d5a doc: план v4 от Опуса 4.8 + ответы на уточнения (нет второго ISP, NET_RAW вряд ли, echo отложить) 2026-08-15 15:03:33 +04:00
“Naeel” 5f6c0a5bf7 doc: план v3 от Соннета — разделение явлений A/B, port-forward первым; принят за основу 2026-08-15 14:56:13 +04:00
“Naeel” b91f21a50d doc: план v2 от DeepSeek V4 Pro (новый чат) — стратегия изоляции слоёв; сравнение с Flash 2026-08-15 14:50:02 +04:00
“Naeel” bd63c04ea3 doc: план сетевых экспериментов от DeepSeek V4 Flash (не Соннет) с поправками — nubes-network-bug-plan 2026-08-15 14:41:53 +04:00
“Naeel” ae338d2b4a chore: переместить исторические doc в doc/legacy, удалить tests и пустые легаси-папки 2026-08-13 22:03:08 +04:00
“Naeel” 56e87eaf1e chore: убрать легаси — pearlharbor креды удалены, doc/api и yandex YMQ помечены ЛЕГАСИ 2026-08-13 21:58:08 +04:00
“Naeel” 0e0af356e4 docs: пометка ЛЕГАСИ в doc/legacy/PLAN.md 2026-08-13 21:55:09 +04:00
Naeel de033a1830 chore: миграция на Nubes Managed — правила, README, registry Gitea, легаси помечено 2026-08-13 20:42:18 +03:00
“Naeel” d3c29d8e3e doc: план миграции shared-sqs на Nubes Managed 2026-08-13 14:03:09 +04:00
Naeel 2d1880b54c feat: Helm chart для shared-sqs deployment + thinking logs 2026-04-13 18:50:28 +03:00
Naeel 9782e9231c doc: tenant isolation architecture 2026-04-13 06:06:56 +03:00
Naeel bb33963fbb fix: remove server-snippet from ingress (blocked by nginx controller), doc stress-test results 2026-04-12 14:09:34 +03:00
Naeel 816e969025 doc: add billing and metrics documentation 2026-04-12 12:34:53 +03:00
Naeel e0ceec7909 doc: update progress and thinking log for v0.1.23-v0.1.24 (billing + metrics) 2026-04-12 12:10:28 +03:00
Naeel dbcd8b1921 feat: billing — usage tracking per SQS operation in PostgreSQL
- New package app/billing: Init/RecordUsage/Close with auto-migrate
- Integration in actionHandler: record tenant_id, operation, msg_count, msg_bytes
- Helm chart: billing section in values.yaml, secret-billing.yaml, env vars in deployment
- Optional: billing disabled by default (BILLING_PG_HOST not set = no-op)
- Table: sqs_usage_records with index on (tenant_id, recorded_at)
2026-04-12 11:51:27 +03:00
Naeel d1af612b48 Deploy shared-sqs v0.1.22 2026-04-12 10:08:00 +03:00
Naeel d7e9d90453 Add demo UI showcase mode 2026-04-12 09:58:32 +03:00
Naeel 1a00ec9799 docs: rename benchmark summary 2026-04-12 08:47:40 +03:00
Naeel d5d3519836 docs: add 32kb benchmark comparison 2026-04-12 08:44:11 +03:00
Naeel 70cfc0d83d docs: add references for 64kb investigation 2026-04-12 08:02:37 +03:00
Naeel a1ff9c4e52 docs: finalize 64kb ingress investigation 2026-04-12 07:59:04 +03:00
Naeel c580101f0c doc: анализ деградации на больших payload (3 root causes)
- json.Marshal(queue) сериализует ВСЕ сообщения под Lock — O(N*msg_size)
- log.Infof логирует полное тело каждого сообщения (256KB на запись)
- CPU limit 500m вызывает K8s CFS throttling на тяжёлых операциях
- PeriodicTasks держит глобальный Lock каждую секунду
- Баг: MessageDoesNotExist возвращает Code=QueueExists
2026-04-11 20:19:28 +03:00
Naeel b181b7ef0b test: compare_sqs.sh benchmark Yandex MQ vs shared-sqs + thinking log 2026-04-11 19:46:01 +03:00
Naeel f618f02e76 doc: stress testing report, progress update, thinking log — v0.1.19 assessment 2026-04-11 19:15:57 +03:00
Naeel fbecde72eb feat: add 4 missing SQS API commands for Yandex/AWS compatibility
- ChangeMessageVisibilityBatch: batch visibility timeout (up to 10 msgs)
- TagQueue: add/update queue tags
- UntagQueue: remove queue tags by keys
- ListQueueTags: list all queue tags
- Added Tags field to Queue struct
- Request/Response models for all 4 commands
- Registered in router (17 total API commands now)
- Yandex Message Queue API reference doc
2026-04-11 07:51:17 +03:00
Naeel c9d9231efc docs: record compatibility runs, decisions and session reasoning 2026-04-10 20:27:59 +03:00
Naeel b9d434bcc5 v0.1.16: JWT auth via nubes API, auto-provisioning, UI login
- app/auth/jwt.go: ParseJWTClaims, TenantIDFromSub (sless-compatible SHA256), PingNubesAPI
- app/admin/admin.go: POST /ui/api/auth endpoint, jwtMiddleware for /ui/api/*
- app/tenant/tenant_store.go: NubesSub/Email fields, GetBySub, CreateFromJWT
- app/ui/index.html: login page, email in navbar, JWT session in localStorage
- deployments/k8s/deployment.yaml: v0.1.16, NUBES_ENDPOINT env
- doc/decisions/resource-limits-plan.md: 20 vulnerabilities audit
- Fix: /ui/api/auth moved to subrouter (gorilla/mux PathPrefix conflict)
2026-04-10 18:35:19 +03:00
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