Multitenant Mystery Only Rockers in the Building by Thomas Vitale @ Spring I/O 2023

Ғылым және технология

Spring I/O 2023 - Barcelona, 18-19 May
- Slides: speakerdeck.com/thomasvitale/...
- GitHub repo: github.com/ThomasVitale/sprin...
Multitenancy is one of the pillars of modern SaaS solutions. Cloud native technologies provide scalability, resilience and cost efficiency. But we also need to ensure the proper level of isolation, security and data control among tenants. This talk will show how to do that in Java and Spring.
Every bean has a secret. To uncover the truth, we must dive into the mysterious world of multitenancy in Spring Boot. The plot thickens as a precious guitar goes missing from a residential building housing only rockers. But something doesn’t quite add up - why is there a deafening silence?
Join us on a thrilling journey as we explore the intricacies of multitenant applications. Together, we’ll embark on a detective mission to uncover what really happened to the stolen guitar. As we investigate, we’ll reveal the secrets of storing data safely and securely, configuring authentication and authorization, and enabling observability - all using Java, Hibernate, Keycloak, and Spring.
Put on your detective hat and join us in solving this mystery. We need your expertise to interrogate tenants, analyze facility staff routines, and review surveillance footage. With your help, we will solve the case and bring music back to the building. Get ready to unravel the plot and learn how to implement multitenancy in modern Java applications.
Will you join us on this thrilling adventure?

Пікірлер: 28

  • @thewriteraddict
    @thewriteraddict11 күн бұрын

    Beautiful, thank you very much for your work. Excelente video, I learned a lot !

  • @bijeesraj007
    @bijeesraj007 Жыл бұрын

    This is one the best in youtube about multi tenancy . Best part is that it was the live coding instead just PPT. Thank you very much !!

  • @aplusphilic
    @aplusphilic Жыл бұрын

    Thomas Vitale is such a good presenter. Couldn’t pause the presentation.

  • @srinivassagit2573
    @srinivassagit25736 ай бұрын

    You saved my day, Thomas Vitale. Thank you so much.

  • @corssobv
    @corssobv Жыл бұрын

    I am simple man, i see Thomas Vitale i click and enjoy!

  • @JetQin
    @JetQin5 ай бұрын

    nice sharing,learn a lot

  • @slawekmazur792
    @slawekmazur792 Жыл бұрын

    nice presentation. docker command to remove all: docker rm -f $(docker ps -a -q)

  • @hidetora_237
    @hidetora_23711 ай бұрын

    Thanks @Thomas for the great presentation.

  • @HATFun
    @HATFun11 ай бұрын

    Thanks @Thomas Vitale for the good presentation. But one thing I thought was missing was how is the schema for tenant created dynamically. Every time you add a tenant you can create a realm in keycloak but you need also create schema for that tenant dynamically

  • @MukeshGupta-qn6pg
    @MukeshGupta-qn6pg11 ай бұрын

    Thanks @Thomas for a great presentation. Great to see good stuff in Spring3.0.

  • @stuartistm.5727
    @stuartistm.5727 Жыл бұрын

    thanks...absolute great presentation!

  • @Anbu_Sampath
    @Anbu_Sampath Жыл бұрын

    Excellent presentation.

  • @anthonysox2001
    @anthonysox2001 Жыл бұрын

    Great presentation

  • @liseu4330
    @liseu4330 Жыл бұрын

    Great talk by Thomas as always 🚀

  • @ragingpahadi
    @ragingpahadi Жыл бұрын

    Nice presentation

  • @7Kubbo7
    @7Kubbo7 Жыл бұрын

    Perfect

  • @Ztall0880
    @Ztall0880 Жыл бұрын

    nice one.

  • @kerryxueify
    @kerryxueify11 ай бұрын

    Great presentation! thanks, I have one question, instead of using http to connect to the microservice, when using kafka/redis queue, how can we extract the tenant info

  • @arnaudpoutieu1331
    @arnaudpoutieu1331 Жыл бұрын

    Thank you Thomas Vitale for this session. Very informative! As per the SaaS platform you've mentioned a few times as an example of a business case appropriate to multi-tenant, How do you envision the creation of schema on the fly upon new client subscription (let's say that the registration module hits the "PUBLIC" schema but specific data for each customer should be stored in their dedicated tenant)?

  • @s3649

    @s3649

    Жыл бұрын

    Yeah same doubt

  • @anthonysox2001
    @anthonysox2001 Жыл бұрын

    How would we implement version control for database schema e.g. using liquibase or flyway

  • @shubhamdixit4598
    @shubhamdixit4598 Жыл бұрын

    Thanks Thomas Vitale. Very informative. However, I have a doubt. In Data Isolation, you say we have 3 strategies, discriminator, separate schema and separate database. I'm stuck with this thought that schema is basically a fancy name for a database. At least for non-oracle RDBMS. How does strategy 2 differ from strategy 3 on a MYSQL dB?? I would really appreciate if someone can clear my doubts on what a schema is and how is it different from a database.

  • @Cvar00

    @Cvar00

    Жыл бұрын

    A database is the actual repository that stores data, while a schema is the logical design that defines how that data is organized and structured within the database. Multiple schemas can exist within a single database, each defining a different logical organization of data. As it was mentioned in the presentation, the difference between strategy 2 & 3 is that in strategy 2 you don't require a different connection while in strategy 3 you do.

  • @alexprezioso
    @alexprezioso Жыл бұрын

    what if a user needs to access to multiple tenants data with the schema and database approach?

  • @Szoyos

    @Szoyos

    11 ай бұрын

    At the same time? If not, why not set the identifier instead.

  • @GameGiggles2021
    @GameGiggles20217 ай бұрын

    How to add tenant dynamically lets say we use schema per tenant and we have a new customer how to add schema dyanmically ornew database dynamically if we use database per tenant.?? Could you clarify please

  • @macctosh

    @macctosh

    4 ай бұрын

    I don't see how this is possible! without redeploying everything

  • @macctosh
    @macctosh4 ай бұрын

    I disaggree, discriminator for Data Isolation is robust as long as the discriminator is a composite key enforced at the database level. I don't see how you can "accidentally" expose tenant data with this approach!

Келесі