3 ms·
>> But what if you changed the routing configuration and the application architecture changed to match? If there were 3 ways to categorise scaling (there’s mor
by CraigJPerry 4y ago
>> But what if you changed the routing configuration and the application architecture changed to match?
If there were 3 ways to categorise scaling (there’s more than this in reality) then they might be vertical, horizontal then distributed.
You’re describing an architecture that’s in the horizontal scaling world view.
You’re not in vertical because you’re using higher powered (but slower) strategies like active routing for comms between components where in vertical you’d have configurable queues but no routing layer.
You’re not in distributed scaling mode because your routing is assuming consistent latency and consistent bandwidth behaviours.
I don’t think one architecture to rule them all is a solvable problem. I’d heartily and very gratefully welcome being proven wrong on this.
- samsquire 4y agoThanks for your comment. It's definitely food for thought. You remind me of fallacies of distributed computing by mentioning consistent latency and bandwidth. https://en.m.wikipedia.org/wiki/Fallacies_of_distributed_computing https://en.m.wikipedia.org/wiki/Fallacies_of_distributed_com... I'm still at the design stage. Those architectures you describe, I am hoping there is a representation that can describe many architectures. There's probably architecture's I am yet to think of that are unrepresentable with my format. Going from 1 to N or removing, adding a layer should be automatable. That's my hope anyway. I want everything to wire itself automatically. I am trying to come up with a data structure that can represent architecture. I am trying to do what inversion of control containers do per request but for architecture. In Inversion of control containers you specify a scope of an object that is instantiated for a scope such as for a request or for a session. I want that for architecture.
- CraigJPerry 4y agoit’s such a fundamental problem space and with such a rich diversity of possible solutions that at a minimum you’re going to create something seriously useful for a subset of types of application. But it’d be transformational for computing if you cracked the whole problem. I hope you do. I do like your idea of outsourcing the wiring (an error prone, detail heavy task) away from humans.