Почему multi-tenant
Каждый клиент на собственной dedicated инфраструктуре, это расточительство. Большинство агентов большую часть времени простаивают. Multi-tenant означает драматически более низкую стоимость на клиента, и эта экономия перетекает в прайсинг.
Но у multi-tenant есть сложные проблемы: изоляция данных, fair scheduling, cost attribution. Ошибётесь в любой из них — получите customer fire.
Изоляция данных
Мы используем schema-per-tenant в Postgres для всех клиентских данных. Query layer enforce-ит tenant scoping на уровне connection, нет API-пути, который может прочитать данные другого тенанта, точка.
Vector stores используют namespaces на tenant. LLM-контекст никогда не пересекает tenants. Agent memories tenant-scoped на уровне хранения.
Справедливое планирование
Проблема noisy neighbor: один клиент запускает огромную кампанию, все остальные остаются без inference-бюджета. Мы используем weighted fair queuing на inference, с весами, привязанными к тарифу и недавнему usage.
Burst-ы абсорбируются spillover-мощностью, которая стоит немного больше и биллится burst-клиенту, а не платформе.