home.social

#multitenancy — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #multitenancy, aggregated by home.social.

fetched live
  1. New post from my blog...

    In case you missed it earlier...

    Multi-Tenant .NET: Shared Database With Schema Separation
    barretblake.dev/posts/developm

  2. Most Rails multi-tenant apps trust developers to remember where(tenant_id: ...).

    That's not an architecture.
    Let PostgreSQL enforce tenant isolation with Row Level Security while Rails focuses on business logic.
    Human-readable code. Database-enforced security.

    rubystacknews.com/2026/07/20/b

    #ruby #rails #postgres #postgresql #multitenancy #softwarearchitecture

  3. The tenantId parameter in every service method is one of those patterns that works until it doesn't.

    The Quarkiverse Multitenancy extension resolves the tenant once per request and gets out of the way. I built a small SaaS API with headers, JWT, and a custom host resolver to see how it holds up.

    the-main-thread.com/p/quarkus-

    #Quarkus #Java #Multitenancy #PostgreSQL

  4. The tenantId parameter in every service method is one of those patterns that works until it doesn't.

    The Quarkiverse Multitenancy extension resolves the tenant once per request and gets out of the way. I built a small SaaS API with headers, JWT, and a custom host resolver to see how it holds up.

    the-main-thread.com/p/quarkus-

    #Quarkus #Java #Multitenancy #PostgreSQL

  5. The tenantId parameter in every service method is one of those patterns that works until it doesn't.

    The Quarkiverse Multitenancy extension resolves the tenant once per request and gets out of the way. I built a small SaaS API with headers, JWT, and a custom host resolver to see how it holds up.

    the-main-thread.com/p/quarkus-

    #Quarkus #Java #Multitenancy #PostgreSQL

  6. The tenantId parameter in every service method is one of those patterns that works until it doesn't.

    The Quarkiverse Multitenancy extension resolves the tenant once per request and gets out of the way. I built a small SaaS API with headers, JWT, and a custom host resolver to see how it holds up.

    the-main-thread.com/p/quarkus-

    #Quarkus #Java #Multitenancy #PostgreSQL

  7. The tenantId parameter in every service method is one of those patterns that works until it doesn't.

    The Quarkiverse Multitenancy extension resolves the tenant once per request and gets out of the way. I built a small SaaS API with headers, JWT, and a custom host resolver to see how it holds up.

    the-main-thread.com/p/quarkus-

    #Quarkus #Java #Multitenancy #PostgreSQL

  8. [Перевод] Kubernetes Multitenancy в 2026 году: как мы перестали поддерживать 30 кластеров и наконец сделали все правильно

    «У нас тридцать два кластера». Руководитель команды platform engineering произнес это как на исповеди. Тридцать два. В компании с девятью продуктовыми командами. По шесть окружений на каждую. Никто не планировал такого — оно просто росло по одному кластеру за раз, каждый раз, когда команде требовалось что-то чуть иное, а самым простым ответом было «подними новый». Я слышала ту или иную версию этой фразы почти в каждой компании, достигшей определенного размера. Цифра меняется — иногда двенадцать, иногда шестьдесят, — но динамика всегда одна. Kubernetes легко позволяет создавать кластеры, никто намеренно не решал, когда их использовать совместно, а когда нет, и в какой-то момент кто-то смотрит на счет за облако и ротацию дежурств — и понимает, что управление десятками кластеров медленно пожирает платформенную команду заживо. Multitenancy — ответ на эту проблему. Kubernetes не был спроектирован для multitenancy из коробки, и, чтобы построить его правильно, требуются реальные инженерные инвестиции, но именно так зрелые команды platform engineering решают эту задачу в 2026 году — со все более удобным инструментарием и все лучше понятыми паттернами. Команда VK Cloud перевела статью, охватывающую все, что автор узнал о Kubernetes multitenancy в нескольких продакшен-окружениях: какие модели существуют, где каждая из них дает сбой, как выстроить слои изоляции, которые действительно защищают тенантов друг от друга, какие инструменты стоят вашего времени и как выглядит хорошо управляемый общий кластер на практике. Если ваша команда управляет слишком большим количеством кластеров или строит платформу для безопасного обслуживания нескольких команд — это руководство, которого мне так не хватало в начале пути.

    habr.com/ru/companies/vktech/a

    #vk_cloud #kubernetes #multitenancy #networkpolicy #vcluster #capsule #kyverno #finops #platformengineering #resourcequota

  9. [Перевод] Kubernetes Multitenancy в 2026 году: как мы перестали поддерживать 30 кластеров и наконец сделали все правильно

    «У нас тридцать два кластера». Руководитель команды platform engineering произнес это как на исповеди. Тридцать два. В компании с девятью продуктовыми командами. По шесть окружений на каждую. Никто не планировал такого — оно просто росло по одному кластеру за раз, каждый раз, когда команде требовалось что-то чуть иное, а самым простым ответом было «подними новый». Я слышала ту или иную версию этой фразы почти в каждой компании, достигшей определенного размера. Цифра меняется — иногда двенадцать, иногда шестьдесят, — но динамика всегда одна. Kubernetes легко позволяет создавать кластеры, никто намеренно не решал, когда их использовать совместно, а когда нет, и в какой-то момент кто-то смотрит на счет за облако и ротацию дежурств — и понимает, что управление десятками кластеров медленно пожирает платформенную команду заживо. Multitenancy — ответ на эту проблему. Kubernetes не был спроектирован для multitenancy из коробки, и, чтобы построить его правильно, требуются реальные инженерные инвестиции, но именно так зрелые команды platform engineering решают эту задачу в 2026 году — со все более удобным инструментарием и все лучше понятыми паттернами. Команда VK Cloud перевела статью, охватывающую все, что автор узнал о Kubernetes multitenancy в нескольких продакшен-окружениях: какие модели существуют, где каждая из них дает сбой, как выстроить слои изоляции, которые действительно защищают тенантов друг от друга, какие инструменты стоят вашего времени и как выглядит хорошо управляемый общий кластер на практике. Если ваша команда управляет слишком большим количеством кластеров или строит платформу для безопасного обслуживания нескольких команд — это руководство, которого мне так не хватало в начале пути.

    habr.com/ru/companies/vktech/a

    #vk_cloud #kubernetes #multitenancy #networkpolicy #vcluster #capsule #kyverno #finops #platformengineering #resourcequota

  10. [Перевод] Kubernetes Multitenancy в 2026 году: как мы перестали поддерживать 30 кластеров и наконец сделали все правильно

    «У нас тридцать два кластера». Руководитель команды platform engineering произнес это как на исповеди. Тридцать два. В компании с девятью продуктовыми командами. По шесть окружений на каждую. Никто не планировал такого — оно просто росло по одному кластеру за раз, каждый раз, когда команде требовалось что-то чуть иное, а самым простым ответом было «подними новый». Я слышала ту или иную версию этой фразы почти в каждой компании, достигшей определенного размера. Цифра меняется — иногда двенадцать, иногда шестьдесят, — но динамика всегда одна. Kubernetes легко позволяет создавать кластеры, никто намеренно не решал, когда их использовать совместно, а когда нет, и в какой-то момент кто-то смотрит на счет за облако и ротацию дежурств — и понимает, что управление десятками кластеров медленно пожирает платформенную команду заживо. Multitenancy — ответ на эту проблему. Kubernetes не был спроектирован для multitenancy из коробки, и, чтобы построить его правильно, требуются реальные инженерные инвестиции, но именно так зрелые команды platform engineering решают эту задачу в 2026 году — со все более удобным инструментарием и все лучше понятыми паттернами. Команда VK Cloud перевела статью, охватывающую все, что автор узнал о Kubernetes multitenancy в нескольких продакшен-окружениях: какие модели существуют, где каждая из них дает сбой, как выстроить слои изоляции, которые действительно защищают тенантов друг от друга, какие инструменты стоят вашего времени и как выглядит хорошо управляемый общий кластер на практике. Если ваша команда управляет слишком большим количеством кластеров или строит платформу для безопасного обслуживания нескольких команд — это руководство, которого мне так не хватало в начале пути.

    habr.com/ru/companies/vktech/a

    #vk_cloud #kubernetes #multitenancy #networkpolicy #vcluster #capsule #kyverno #finops #platformengineering #resourcequota

  11. @ollieread I really like the row level security approach for multitenancy. It works well with spring boot / hibernate / liquibase. The only downside for me: I found no easy solution for per tenant sequences (e.g. for invoice numbers).
    #PostgreSQL #SpringBoot #Hibernate #Liquibase #Multitenancy

  12. @ollieread I really like the row level security approach for multitenancy. It works well with spring boot / hibernate / liquibase. The only downside for me: I found no easy solution for per tenant sequences (e.g. for invoice numbers).
    #PostgreSQL #SpringBoot #Hibernate #Liquibase #Multitenancy

  13. @ollieread I really like the row level security approach for multitenancy. It works well with spring boot / hibernate / liquibase. The only downside for me: I found no easy solution for per tenant sequences (e.g. for invoice numbers).
    #PostgreSQL #SpringBoot #Hibernate #Liquibase #Multitenancy

  14. @ollieread I really like the row level security approach for multitenancy. It works well with spring boot / hibernate / liquibase. The only downside for me: I found no easy solution for per tenant sequences (e.g. for invoice numbers).
    #PostgreSQL #SpringBoot #Hibernate #Liquibase #Multitenancy

  15. @ollieread I realy like the row level security approach for multitenancy. It works well with spring boot / hibernate / liquibase. The only downside for me: I found no easy solution for per tenant sequences (e.g. for invoice numbers).
    #PostgreSQL #SpringBoot #Hibernate #Liquibase #Multitenancy

  16. "Should each tenant get its own database?" comes up constantly, and it's genuinely difficult to answer in a back and forth because it's a whole spectrum of options with different tradeoffs, not a yes or no.

    So I wrote the thing I can point people at instead: the full range, from separate instances down to a discriminator column with RLS, and how it differs across Postgres, MySQL and SQLite.

    ollieread.com/articles/you-pro

    #PHP #Laravel #PostgreSQL #Multitenancy

  17. "Should each tenant get its own database?" comes up constantly, and it's genuinely difficult to answer in a back and forth because it's a whole spectrum of options with different tradeoffs, not a yes or no.

    So I wrote the thing I can point people at instead: the full range, from separate instances down to a discriminator column with RLS, and how it differs across Postgres, MySQL and SQLite.

    ollieread.com/articles/you-pro

    #PHP #Laravel #PostgreSQL #Multitenancy

  18. "Should each tenant get its own database?" comes up constantly, and it's genuinely difficult to answer in a back and forth because it's a whole spectrum of options with different tradeoffs, not a yes or no.

    So I wrote the thing I can point people at instead: the full range, from separate instances down to a discriminator column with RLS, and how it differs across Postgres, MySQL and SQLite.

    ollieread.com/articles/you-pro

    #PHP #Laravel #PostgreSQL #Multitenancy

  19. "Should each tenant get its own database?" comes up constantly, and it's genuinely difficult to answer in a back and forth because it's a whole spectrum of options with different tradeoffs, not a yes or no.

    So I wrote the thing I can point people at instead: the full range, from separate instances down to a discriminator column with RLS, and how it differs across Postgres, MySQL and SQLite.

    ollieread.com/articles/you-pro

    #PHP #Laravel #PostgreSQL #Multitenancy

  20. "Should each tenant get its own database?" comes up constantly, and it's genuinely difficult to answer in a back and forth because it's a whole spectrum of options with different tradeoffs, not a yes or no.

    So I wrote the thing I can point people at instead: the full range, from separate instances down to a discriminator column with RLS, and how it differs across Postgres, MySQL and SQLite.

    ollieread.com/articles/you-pro

    #PHP #Laravel #PostgreSQL #Multitenancy

  21. When reading a detailed piece of content for a complex topic, something that's quite long, how do you prefer to consume it?

    One big long page, or broken up into chunks? I'm not convinced the article format is working, especially with the #multitenancy stuff I'm writing.

  22. When reading a detailed piece of content for a complex topic, something that's quite long, how do you prefer to consume it?

    One big long page, or broken up into chunks? I'm not convinced the article format is working, especially with the #multitenancy stuff I'm writing.

  23. When reading a detailed piece of content for a complex topic, something that's quite long, how do you prefer to consume it?

    One big long page, or broken up into chunks? I'm not convinced the article format is working, especially with the #multitenancy stuff I'm writing.

  24. When reading a detailed piece of content for a complex topic, something that's quite long, how do you prefer to consume it?

    One big long page, or broken up into chunks? I'm not convinced the article format is working, especially with the #multitenancy stuff I'm writing.

  25. Как я реализовал передачу диалога из ИИ-консультанта сайта в MAX

    Представьте: клиент зашел на сайт в полночь. Менеджер спит. Утром клиент уже забыл о вас и купил у конкурента. Обычный чат-бот не спасает: он либо тупой, либо безумно дорогой, либо хранит данные за океаном. Я создал решение, которое решает эту проблему раз и навсегда.

    habr.com/ru/articles/1045412/

    #AI #чатботы #MAX #Python #FastAPI #WebSocket #multitenancy

  26. Как я реализовал передачу диалога из ИИ-консультанта сайта в MAX

    Представьте: клиент зашел на сайт в полночь. Менеджер спит. Утром клиент уже забыл о вас и купил у конкурента. Обычный чат-бот не спасает: он либо тупой, либо безумно дорогой, либо хранит данные за океаном. Я создал решение, которое решает эту проблему раз и навсегда.

    habr.com/ru/articles/1045412/

    #AI #чатботы #MAX #Python #FastAPI #WebSocket #multitenancy

  27. Как я реализовал передачу диалога из ИИ-консультанта сайта в MAX

    Представьте: клиент зашел на сайт в полночь. Менеджер спит. Утром клиент уже забыл о вас и купил у конкурента. Обычный чат-бот не спасает: он либо тупой, либо безумно дорогой, либо хранит данные за океаном. Я создал решение, которое решает эту проблему раз и навсегда.

    habr.com/ru/articles/1045412/

    #AI #чатботы #MAX #Python #FastAPI #WebSocket #multitenancy

  28. 🚀 New blog post + django-rls-tenants 1.1.0 is out!
    TL;DR: PostgreSQL RLS policies can't use your indexes because current_setting() isn't leakproof. The query planner falls back to sequential scans and applies tenant filtering row-by-row. On large tables, this hurts.

    v1.1 fixes this by adding automatic ORM-level WHERE tenant_id = X alongside RLS - so Postgres uses your composite indexes for the fast path while RLS still enforces isolation as a safety net.

    Also in this release:
    → select_related() now propagates tenant filters across joins
    → threading.local replaced with contextvars (ASGI-safe)
    → Superuser detection at startup (RLS is silently bypassed otherwise!)
    → Better exception handling in middleware
    → CASE WHEN policy rewrite for cleaner evaluation
    Full write-up: dev.to/dvoraj75/postgresql-rls
    GitHub: github.com/dvoraj75/django-rls
    #Django #PostgreSQL #Python #MultiTenancy #RLS #OpenSource

  29. 🚀 New blog post + django-rls-tenants 1.1.0 is out!
    TL;DR: PostgreSQL RLS policies can't use your indexes because current_setting() isn't leakproof. The query planner falls back to sequential scans and applies tenant filtering row-by-row. On large tables, this hurts.

    v1.1 fixes this by adding automatic ORM-level WHERE tenant_id = X alongside RLS - so Postgres uses your composite indexes for the fast path while RLS still enforces isolation as a safety net.

    Also in this release:
    → select_related() now propagates tenant filters across joins
    → threading.local replaced with contextvars (ASGI-safe)
    → Superuser detection at startup (RLS is silently bypassed otherwise!)
    → Better exception handling in middleware
    → CASE WHEN policy rewrite for cleaner evaluation
    Full write-up: dev.to/dvoraj75/postgresql-rls
    GitHub: github.com/dvoraj75/django-rls
    #Django #PostgreSQL #Python #MultiTenancy #RLS #OpenSource

  30. 🚀 New blog post + django-rls-tenants 1.1.0 is out!
    TL;DR: PostgreSQL RLS policies can't use your indexes because current_setting() isn't leakproof. The query planner falls back to sequential scans and applies tenant filtering row-by-row. On large tables, this hurts.

    v1.1 fixes this by adding automatic ORM-level WHERE tenant_id = X alongside RLS - so Postgres uses your composite indexes for the fast path while RLS still enforces isolation as a safety net.

    Also in this release:
    → select_related() now propagates tenant filters across joins
    → threading.local replaced with contextvars (ASGI-safe)
    → Superuser detection at startup (RLS is silently bypassed otherwise!)
    → Better exception handling in middleware
    → CASE WHEN policy rewrite for cleaner evaluation
    Full write-up: dev.to/dvoraj75/postgresql-rls
    GitHub: github.com/dvoraj75/django-rls
    #Django #PostgreSQL #Python #MultiTenancy #RLS #OpenSource

  31. 🚀 New blog post + django-rls-tenants 1.1.0 is out!
    TL;DR: PostgreSQL RLS policies can't use your indexes because current_setting() isn't leakproof. The query planner falls back to sequential scans and applies tenant filtering row-by-row. On large tables, this hurts.

    v1.1 fixes this by adding automatic ORM-level WHERE tenant_id = X alongside RLS - so Postgres uses your composite indexes for the fast path while RLS still enforces isolation as a safety net.

    Also in this release:
    → select_related() now propagates tenant filters across joins
    → threading.local replaced with contextvars (ASGI-safe)
    → Superuser detection at startup (RLS is silently bypassed otherwise!)
    → Better exception handling in middleware
    → CASE WHEN policy rewrite for cleaner evaluation
    Full write-up: dev.to/dvoraj75/postgresql-rls
    GitHub: github.com/dvoraj75/django-rls

  32. Your Django ORM protects tenant data. Your raw SQL doesn't. 😬

    That's why I built django-rls-tenants — multitenancy powered by PostgreSQL Row-Level Security, enforced at the database level.

    🔒 Every query is filtered — ORM, raw SQL, even dbshell
    🚫 Missing tenant context? Zero rows returned, never a data leak
    📦 Single schema, no connection routing headaches
    ⚡ Drop-in: one base model, one middleware, done

    Unlike schema-based or ORM-rewriting approaches, RLS policies live in PostgreSQL itself. The database becomes your last line of defense — not your app code.

    Supports Python 3.11+, Django 4.2–6.0, PostgreSQL 15+.

    Just shipped v1.0.0 🚀

    pip install django-rls-tenants

    📖 Docs & source: github.com/dvoraj75/django-rls

    Feedback, stars & contributions welcome! ⭐

    #Django #Python #PostgreSQL #MultiTenancy #RowLevelSecurity #OpenSource #WebDev #SaaS #InfoSec #Database

  33. Your Django ORM protects tenant data. Your raw SQL doesn't. 😬

    That's why I built django-rls-tenants — multitenancy powered by PostgreSQL Row-Level Security, enforced at the database level.

    🔒 Every query is filtered — ORM, raw SQL, even dbshell
    🚫 Missing tenant context? Zero rows returned, never a data leak
    📦 Single schema, no connection routing headaches
    ⚡ Drop-in: one base model, one middleware, done

    Unlike schema-based or ORM-rewriting approaches, RLS policies live in PostgreSQL itself. The database becomes your last line of defense — not your app code.

    Supports Python 3.11+, Django 4.2–6.0, PostgreSQL 15+.

    Just shipped v1.0.0 🚀

    pip install django-rls-tenants

    📖 Docs & source: github.com/dvoraj75/django-rls

    Feedback, stars & contributions welcome! ⭐

    #Django #Python #PostgreSQL #MultiTenancy #RowLevelSecurity #OpenSource #WebDev #SaaS #InfoSec #Database

  34. Your Django ORM protects tenant data. Your raw SQL doesn't. 😬

    That's why I built django-rls-tenants — multitenancy powered by PostgreSQL Row-Level Security, enforced at the database level.

    🔒 Every query is filtered — ORM, raw SQL, even dbshell
    🚫 Missing tenant context? Zero rows returned, never a data leak
    📦 Single schema, no connection routing headaches
    ⚡ Drop-in: one base model, one middleware, done

    Unlike schema-based or ORM-rewriting approaches, RLS policies live in PostgreSQL itself. The database becomes your last line of defense — not your app code.

    Supports Python 3.11+, Django 4.2–6.0, PostgreSQL 15+.

    Just shipped v1.0.0 🚀

    pip install django-rls-tenants

    📖 Docs & source: github.com/dvoraj75/django-rls

    Feedback, stars & contributions welcome! ⭐

  35. 🚀 Day 1 on django-rls-tenants — bringing true PostgreSQL Row-Level Security to Django multitenancy!

    Instead of separate schemas or filtered querysets, this library leverages native RLS policies at the DB level to isolate tenant data automatically.

    ✅ Pros:
    • True DB-level isolation — tenants can't bleed into each other
    • Transparent to Django ORM — no custom managers needed
    • Leaner than schema-per-tenant approaches
    • Scales well for high tenant counts
    • Security enforced even outside the app layer

    ❌ Cons:
    • PostgreSQL-only (no MySQL/SQLite support)
    • RLS policies add complexity to migrations
    • Debugging cross-tenant issues can be tricky
    • Superuser connections bypass RLS — needs care
    • Less community tooling than shared-schema approaches

    Still very early, but the foundations are solid. Would love feedback from anyone who's tackled multitenancy in Django before! 🐘🐍

    #Django #PostgreSQL #Python #Multitenancy #RLS #RowLevelSecurity #OpenSource #WebDev #SaaS #DjangoORM #DevLife

  36. 🚀 Day 1 on django-rls-tenants — bringing true PostgreSQL Row-Level Security to Django multitenancy!

    Instead of separate schemas or filtered querysets, this library leverages native RLS policies at the DB level to isolate tenant data automatically.

    ✅ Pros:
    • True DB-level isolation — tenants can't bleed into each other
    • Transparent to Django ORM — no custom managers needed
    • Leaner than schema-per-tenant approaches
    • Scales well for high tenant counts
    • Security enforced even outside the app layer

    ❌ Cons:
    • PostgreSQL-only (no MySQL/SQLite support)
    • RLS policies add complexity to migrations
    • Debugging cross-tenant issues can be tricky
    • Superuser connections bypass RLS — needs care
    • Less community tooling than shared-schema approaches

    Still very early, but the foundations are solid. Would love feedback from anyone who's tackled multitenancy in Django before! 🐘🐍