Closed hohwille closed 3 years ago
Since I'm now evaluating GraphQL on my current customer and Netflix just released their GraphQL framework for Spring... I wonder if it could be a viable alternative...
I haven't really seen many adoption on Enterprise projects, and I see it some bits already deprecated on my-thai-star but it seems a good fit for Agile development because of the speed you get when starting the application.
@amarinso thanks for your feedback and suggestion. We should at least have some PoV on it. I see the great flexibility as a big pro while the great complexity is definetly a con.
Wasn't GraphQL demonstrated in MTS once? IMHO GraphQL is kind of overcomplicating things. The problem is how people are dealing with relations. The design flaw starts with JPA and how relations are addressed in entities. As a result we have to somehow address this more specificly in TOs and REST APIs. This turned out inflexible in some projects and as a result GraphQL was introduced that IMHO goes from the one extreme to the other - but just my personal PoV. Using graph databases and Links instead of direct relations was a real eye-opener to me. With HTTP2 and now even HTTP3 based on QUIC instead of TCP (https://en.wikipedia.org/wiki/HTTP/3) round-trips will have minimal overhead and therefore you will become lazy loading in the client in the future. When using Link for relations that can be serialized as ID but allows lazy loading on client and server very easily. This has already started with reactive programming anyhow. So my personal vision is that things like GraphQL will not become the next big thing.
Aint this kind of obsolete? https://github.com/devonfw/devon4j/blob/90660aaa32ca7f4a81d160346703a49b3ae0f06d/documentation/guide-service-layer.asciidoc#types-of-services
We should not propagate SOAP anymore that is a dying technology. Nowadays REST is state of the art and it is recommended as "external services" as well. If we want to say something about this topic at all we should consider "code first" vs. "contract first". So for "external services" we should recommend to use an OpenAPI contract whereas if we are within a homogenous Java dominated IT landscape the "contract first" approach can be a nice opportunity/alternative (esp. when combined with our service-client).