This makes sense but I can’t really unsee the learnings from subject based addressing in messaging systems like NATS. It would make this article like one paragraph long.
The very idea that services should talk directly to another is flawed even on happy days without any migrations and such. There’s service discovery, addressing, load balancing, firewall configurations, rate limiting that really should all be part of one logical connectivity plane. In NATS, your services can run behind a residential NAT if you wanted to, all you need is to connect to the cluster and choose a subject space.
Reverse proxies is probably the most common modern solution though in things like k8s. I’m not wise enough to say if they are better from an architectural pov.
The very idea that services should talk directly to another is flawed even on happy days without any migrations and such. There’s service discovery, addressing, load balancing, firewall configurations, rate limiting that really should all be part of one logical connectivity plane. In NATS, your services can run behind a residential NAT if you wanted to, all you need is to connect to the cluster and choose a subject space.
Reverse proxies is probably the most common modern solution though in things like k8s. I’m not wise enough to say if they are better from an architectural pov.