3 ms·
It’s hard to enforce api contracts between components of a monolith. And when performance tanks, it’s hard to pin the root cause to a component. Both of these
by konschubert 3y ago
It’s hard to enforce api contracts between components of a monolith.
And when performance tanks, it’s hard to pin the root cause to a component.
Both of these could probably be fixed by tooling. Could be z as fun research project or maybe a company.
- karlmdavis 3y agoYou and I must work in very different contexts, as these questions are so obvious that they first seemed like satire to me. You enforce API contracts in a monolith (or any codebase, really) via an at-least-modest amount of typing and a compiler. You diagnose performance issues via any number of tools, prominently including metrics and profilers. My context for this is a lot of years working with backend languages like Java, Rust, etc. though the same assurances and tooling are available for most every platform I’m aware of.
- konschubert 3y agoSure… and then the type of the return object if of API is ‘CustomerORMModel’… and now the api consumer can build n+1 query problems across components. You need a few more restrictions than that. But I agree it’s doable.
- baby 3y agoThat’s why Meta has thrift and Google has grpc.