Profile picture
Mike Amundsen @mamund
, 10 tweets, 8 min read Read on Twitter
well, ok, @devcorpio and @mathiasverraes by request: thread coming.
heads up for anyone interested in @fielding, #REST, #GraphQL, #CRUD, #SOAP, #Reactive 1/10
per @fielding's disseration, in order to achieve his desired architectural properties (chap02) and meet the WWW's domain requirements (chap04), he wanted to establish a set of required constraints (chap05). most ppl just focus on chap05 and i recommend focusing on chap02. 2/10
there @fielding makes a case that arch properties are induced by the set of contraints you select. thus, he creates his set of contraints for inducing his desired properties and names that #REST. 3/10
so, #REST constraints are there to encourage architectural properties. when reading chap05, focus on the arch-props @fielding calls out when he defines his constraints -- this helps you see why he thinks they are required. 4/10
now, in the examples i've seen, #GraphQL misses three of #REST's constraints: cache (GQL uses HTTP POST for reads), uniform-interface (GQL has a single resource for all requests), and layered-system contraints (intermediates/proxies can't reason about GQL payloads). 5/10
of course, #GraphQL _does_ have its own set of desired architectural properties and requirements. so, it would make sense for GQL folks to create a list of required constraints to help induce those desired properties. i've not yet seen that anywhere. 6/10
FWIW, i'd like to see classic #CRUD described w/ the a set of required constraints. same for #SOAP and #Reactive. I like the #ReactiveManifesto as a list of desired properties but it falls short of a proper set of required constraints. 7/10
importantly, @fielding points out (chap01) that "a good designer should select a style that matches the needs of the particular problem being solved." #GraphQL is not #REST & #CRUD is not #REST & #SOAP is not #REST & #Reactive is not #REST. 8/10
IMO, properties + requirements = constraints is an excellent way to define a network software architecture style. there is no value in using #REST as a perfection or punching-bag. there IS value in using #REST as a guide for creating new/better network software archs 9/10
i'll end w/ a quote from @fielding's dissertation introduction: "Consider how often we see software projects begin with adoption of the latest fad in architectural design, and only later discover whether or not the system requirements call for such an architecture." Cheers! 10/10
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Mike Amundsen
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member and get exclusive features!

Premium member ($30.00/year)

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!