Alta latenza di comunicazione tra un servizio e l'altro
Consistenza eventuale
Duplicazione di codice / logiche
Allineamento delle versioni
Errori di rete / Gestione dei retry
Bye bye transazionalità
Monolite
Microservizio
Non c'è connessione
Troppe richieste in contemporanea
...
Chiamata in timeout
Per i microservizi non vale il principio DRY
Ridurre l'accoppiamento forte implica duplicare logiche se sovrapposte
Microservice
Microservice
Microservice
User Interface
Framework
Moduli
namespace MyModule;
use Illuminate\Support\ServiceProvider;
class MyModuleServiceProvider extends ServiceProvider
{
public function register(): void { }
public function boot(): void { }
}
warehouse_
payment_
cart_
product_
"repositories": [
{
"type": "composer",
"url": "https://url-to-your-repository/packages.json"
}
],
"require": {
"app/name": "^1.0"
}
"repositories": [
{
"type": "git",
"url": "git@gitlab.com:packages/path/to/repo.git"
},
],
"require": {
"app/name": "dev-main"
}
"repositories": [
{
"type": "path",
"url": "../modules/mymodule/composer.json"
}
],
"require": {
"app/name": "@dev"
}
"extra": {
"laravel": {
"providers": [
"MyModule\\MyModuleServiceProvider"
],
"aliases": {
"MyAlias": "MyModule\\Facade"
}
}
}
nwidart/laravel-modules
cnastasi/monorepo-plugin
twitch.tv/devdojo_it
youtube.com/@devdojo_it
t.me/devdojo_it
info@devdojo.it