In its simplest form, multitenancy is a way of structuring a piece of software so that a single instance, or installation, runs as if it were multiple instances or installations.
There are many ways to go about achieving multitenancy, but there are some core archetypes, each with their own variations and options, that make multitenancy a broader spectrum.
The course breaks down all of the concepts behind multitenancy and explains them in an easily digestible manner, as well walking you through how to implement them in a Laravel application.
The course also covers use-cases for each concept, their compatibility with other involved concepts, and examples of existing systems that make use of them.
The package, named Porter, is a configurable implementation of the course. It is designed to be used when creating a full multitenancy solution isn’t viable, whether that’s because of time, knowledge or experience.
Porter is designed to be as non-invasive as possible, allowing you to write your application like you would normally, with all the multitenancy functionality being handled automatically.
Both the course and package cover a whole range of topics and concepts, including the different branches, options and limitations that come from each of them.
All examples for the course will be part of building a fictional multitenanted blogging platform, much like wordpress.com, albeit a simpler version.
The above is a non-exhaustive list of topics that will be covered by the course. As the course is still in development they may be subject to change.
A lot of the topics covered will be covered in several different ways, as they can differ depending on your choice of identification method, and how you're handling your databases.