|
I've often wondered about this example:
1) Relational databases already had network interfaces
2) SQL isn't perfect, but it has been reliable for a long time
3) Why we didn't increase the performance and security of SQL interfaces, relational databases and just expose those to client applications, including in the browser, directly? Ok, there are a lot of reasons. I worked on a project once that was essentially a "data platform", kind of a SQL firewall to "any data" (a bit of a stretch, but that was the concept). You could put any data system (relational, non-relational, web services, etc.) behind it, but then join across heterogeneous systems using plain old SQL. You had a query language and a network interface, and since it was separate from the actual databases themselves, you could do some interesting things with security, caching and scalability in a different layer. GraphQL has always seemed like the same kind of query abstraction over data, with a network interface. Props to Facebook for making the tech and releasing it open source. This also makes me think about the command query responsibility separation (CQRS) pattern, a similar discussion. EDIT: Also, lest we forget OData... which never really took off, but offers similar functionality. |