Multi-tenancy with spring boot (Shared Database and Shared Schema) - Part 2

Khởi đầu với Multi-tenancy with spring boot - Part 1 tôi đã phun một tràng về lý thuyết cũng như các cách impl multi-tenancy trong spring (và tất cả chỉ là nói mồm 😆). Tiếp nối series multi-tenancy, bài viết này tôi sẽ giới thiệu cụ thể về cách impl Shared Database and Shared Schema với spring.

Lý thuyết về Shared Database and Shared Schema trong multi-tenancy tôi sẽ không nói nữa (nói nữa các bạn lại đấ* tôi vì lắm mồm 🥲). Bài hôm nay tôi sẽ bê từ How to integrate Hibernates Multitenant feature with Spring Data JPA in a Spring Boot application, ok, let’s start.

Multi-tenancy with spring boot - Part 1

Multi-tenancy là một kiến trúc trong đó nhiều khách hàng (tenants) sẽ được phục vụ chỉ bởi 1 một hệ thống. Nó yêu cầu mức độ cô lập cần thiết giữa các khách hàng, sao cho dữ liệu và tài nguyên được sử dụng bởi từng khách hàng được tách riêng biệt với các khách hàng khác.

Multi-tenancy vs Single-tenancy

Inheritance in spring jpa

Tính thừa kế là 1 trong những key concepts của java và dĩ nhiên là bạn có thể sử dụng nó trong các data models của mình, nhưng nếu bạn muốn map models xuống relational db thì khả năng cao là bạn sẽ gặp bug ngập mồm vì bản chất của mấy ông relational db này không có khái niệm về kế thừa :)) Thế nhưng các cao nhân vẫn chế ra cách để ông inheriance models map được với ông relational db qua cái cầu jpa hibernate.

Trong jpa hibernate thì có 4 cách chính để kế thừa domain models, mỗi cách có ưu nhược điểm riêng. Tôi sẽ giới thiệu ngay bên dưới kèm theo bài toán như sau:

Chrome extension with webpack and typescript

Chrome extension thì không còn xa lạ với người dùng chrome nữa, từ chặn quảng cáo, vpn đến torrent đều có thể xài chrome extension. Xài sướng là thế, nhưng bạn có bao giờ tự hỏi chrome extension làm việc như thế nào, làm sao để viết ra được chúng. Nếu bạn đã tò mò và muốn tìm hiểu thì tôi sẽ đưa đèn chỉ lối cho bạn :))

Ở các phiên bản trước của chrome, manifest v2 được sử dụng khá rộng rãi cho đến khi ông v3 tòi ra và chrome bắt buộc phải migrate lên v3 nếu không thì sẽ xịt :)) thế nên hôm nay tôi sẽ hướng dẩn các bạn chơi với con v3 này.

Generate typescript docs from source code

Tự động sinh docs từ comment(tsdoc) trong typescript code

Gen docs từ source code của typescript thì chắc chẳn(g) xa lạ gì nữa, chỉ cần bỏ ra vài phút search là bạn có thể tìm thấy cả lùm thư viện/tools gen docs cho ts, vừa tiết kiệm thời gian vừa đỡ đau não. Nhưng đơn giản quá thì dể gây nhàm chán, vì thế hôm nay tôi sẽ hướng dẩn bạn tự viết code để gen docs, đúng tiêu chuẩn cây nhà lá vườn, tự viết tự fix tự chưởi thề :))

Pagination


Copyright © 2022. All rights reserved.