doc: Tests 3-7, 8 стресс-функций, план Go runtime v0.1.1 + pgx/v5
This commit is contained in:
@@ -1,5 +1,42 @@
|
||||
# Решения и обоснования
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-19 — Go runtime v0.1.1: внешние зависимости через go.mod/go.sum
|
||||
|
||||
### Контекст
|
||||
|
||||
Go runtime `naeel/sless-runtime-go1.23:v0.1.0` содержал `go.mod` только с `module sless/fn` и `go 1.23`.
|
||||
Никаких `require` — пользовательский код мог использовать только stdlib.
|
||||
|
||||
При попытке добавить `pgxpool` в handler.go функция не собиралась (зависимость не найдена).
|
||||
|
||||
### Решение
|
||||
|
||||
Добавить `require github.com/jackc/pgx/v5 v5.7.2` в `runtimes/go1.23/go.mod`.
|
||||
Сгенерировать `go.sum` через `go mod tidy` (stub `.go` файл с импортом нужен — иначе tidy удалит deps).
|
||||
Обновить `Dockerfile` — добавить `COPY go.sum` + `RUN go mod download` **до** копирования пользовательского кода → зависимости кешируются в слое Docker, не скачиваются при каждой сборке функции.
|
||||
|
||||
### Почему pgx/v5, а не lib/pq
|
||||
|
||||
- `pgx/v5` — современный нативный PG-драйвер, `pgxpool` встроен, не нужен отдельный `database/sql`
|
||||
- `lib/pq` — legacy, минимальный API, отсутствует connection pool
|
||||
- `jackc/pgx/v5 v5.7.2` — последний стабильный тег на момент решения
|
||||
|
||||
### Что стало возможным
|
||||
|
||||
Любая Go функция в платформе может импортировать `pgxpool` и работать с PG напрямую:
|
||||
```go
|
||||
import "github.com/jackc/pgx/v5/pgxpool"
|
||||
```
|
||||
|
||||
### Версионирование образа
|
||||
|
||||
`v0.1.0` → `v0.1.1` — изменение breaking: бинарник пересобирается с новыми deps.
|
||||
Base image в `context.go` обновляется с `v0.1.0` на `v0.1.1`, оператор бампится.
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-19 — Архитектура event-trigger (Вариант A: отдельный event-dispatcher)
|
||||
|
||||
### Контекст
|
||||
|
||||
Reference in New Issue
Block a user