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

Sdílet
Vložit
  • čas přidán 14. 06. 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?
  • Věda a technologie

Komentáře • 27

  • @bijeesraj007
    @bijeesraj007 Před 11 měsíci +8

    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 Před rokem +5

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

  • @srinivassagit2573
    @srinivassagit2573 Před 5 měsíci +1

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

  • @corssobv
    @corssobv Před rokem +1

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

  • @JetQin
    @JetQin Před 4 měsíci +1

    nice sharing,learn a lot

  • @slawekmazur792
    @slawekmazur792 Před rokem +3

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

  • @HATFun
    @HATFun Před 11 měsíci +3

    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

  • @hidetora_237
    @hidetora_237 Před 11 měsíci

    Thanks @Thomas for the great presentation.

  • @MukeshGupta-qn6pg
    @MukeshGupta-qn6pg Před 11 měsíci

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

  • @stuartistm.5727
    @stuartistm.5727 Před rokem

    thanks...absolute great presentation!

  • @Anbu_Sampath
    @Anbu_Sampath Před rokem

    Excellent presentation.

  • @liseu4330
    @liseu4330 Před rokem

    Great talk by Thomas as always 🚀

  • @anthonysox2001
    @anthonysox2001 Před rokem

    Great presentation

  • @ragingpahadi
    @ragingpahadi Před rokem

    Nice presentation

  • @Ztall0880
    @Ztall0880 Před rokem

    nice one.

  • @7Kubbo7
    @7Kubbo7 Před rokem

    Perfect

  • @kerryxueify
    @kerryxueify Před 10 měsíci

    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

  • @anthonysox2001
    @anthonysox2001 Před rokem

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

  • @arnaudpoutieu1331
    @arnaudpoutieu1331 Před rokem

    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 Před 11 měsíci

      Yeah same doubt

  • @alexprezioso
    @alexprezioso Před rokem

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

    • @Szoyos
      @Szoyos Před 11 měsíci

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

  • @GameGiggles2021
    @GameGiggles2021 Před 7 měsíci

    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 Před 4 měsíci

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

  • @shubhamdixit4598
    @shubhamdixit4598 Před rokem

    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 Před 11 měsíci

      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.

  • @macctosh
    @macctosh Před 4 měsíci

    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!