Using Graphql for Content Delivery in Kentico Cloud

Total Page:16

File Type:pdf, Size:1020Kb

Using Graphql for Content Delivery in Kentico Cloud Masaryk University Faculty of Informatics Using GraphQL for Content Delivery in Kentico Cloud Bachelor’s Thesis David Čechák Brno, Fall 2017 Masaryk University Faculty of Informatics Using GraphQL for Content Delivery in Kentico Cloud Bachelor’s Thesis David Čechák Brno, Fall 2017 This is where a copy of the official signed thesis assignment and a copy ofthe Statement of an Author is located in the printed version of the document. Declaration Hereby I declare that this paper is my original authorial work, which I have worked out on my own. All sources, references, and literature used or excerpted during elaboration of this work are properly cited and listed in complete reference to the due source. David Čechák Advisor: Bruno Rossi, PhD i Acknowledgement I would like to thank my advisor Ph.D. Bruno Rossi for helpful and proactive suggestions, to Kentico Software company for the opportu- nity work on this thesis with their guidance, especially to Jiří Kusák for advice regarding the practical part of the thesis. I also owe my gratitude to my family and friends for their support. iii Abstract The goal of the thesis is to research GraphQL technology as a possible alternative to Kentico Cloud’s Delivery API. The current API is based on RESTful principles. The thesis is divided into four parts. In the beginning is explained the current state of Delivery API and how Kentico Cloud’s data are structured. The second part compares REST and GraphQL concepts and explores possibilities of incorporating GraphQL API. It considers databases and approaches that could han- dle both. Next chapter describes implementation of proof of concept solution, which is based on the previous analysis. The last chapter breaks down conducted measurement and presents its results. iv Keywords GraphQL, content delivery, JavaScript, Node.js, Kentico Cloud Deliv- ery, cloud-first headless CMS v Contents 1 Introduction 1 2 How Kentico Cloud delivers content 3 2.1 CMS introduction ......................3 2.1.1 Managed cloud hosting . .3 2.1.2 Platform as a Service . .3 2.1.3 Software as a Service . .3 2.1.4 Headless CMS . .4 2.2 Kentico Cloud .........................4 2.3 Data description ........................5 2.4 Current storage ........................6 2.5 Database data structure ....................7 2.5.1 Content item . .7 2.5.2 Content type and taxonomy . .9 2.6 Delivery API ......................... 10 3 Analysis 13 3.1 REST ............................. 13 3.1.1 Six constraints . 13 3.1.2 Limitations . 14 3.2 GraphQL ........................... 14 3.2.1 Schema . 15 3.2.2 Introspection . 16 3.2.3 Operations . 16 3.2.4 Adjustability . 16 3.2.5 GraphiQL . 17 3.3 GraphQL and REST comparison ............... 17 3.3.1 Get the entire entity . 18 3.3.2 Versioning . 18 3.3.3 Endpoints architecture . 19 3.4 Possible database models ................... 20 3.4.1 NoSQL . 20 3.4.2 Graph-based . 21 3.4.3 Multi-model database . 21 3.5 Azure Cosmos DB ...................... 22 vii 3.5.1 DocumentDB . 22 3.5.2 GraphDB . 23 3.5.3 DocumentDB API and Gremlin to query GraphDB 23 3.6 Selected solution ....................... 24 4 Implementation 25 4.1 Description of used technologies ............... 25 4.1.1 Javascript with Node.js . 25 4.1.2 Package manager npm . 25 4.2 How to use the application .................. 26 4.2.1 Prerequisites . 26 4.2.2 Startup instructions . 26 4.2.3 Inline fragments . 27 4.3 Drawbacks ........................... 28 5 Measurement 31 5.1 Selection of measurement metrics and test samples ..... 31 5.2 Results ............................ 32 5.2.1 Batching queries . 33 6 Conclusion 37 6.1 Summarization of the work accomplished .......... 37 6.2 Possible further improvements and steps required for a suc- cessful integration ....................... 37 Bibliography 39 A Attached content 45 viii List of Tables 5.1 Delivery API dataset details. 32 5.2 GraphQL - whole item dataset details. 33 5.3 GraphQL - partial item dataset details. 34 5.4 Test results (columns in ms stand for response time). 34 ix List of Figures 2.1 Top level fields of a content item. 7 2.2 Fields of "elements" field part 1. 8 2.3 Fields of "elements" field part 2. 9 3.1 An example GraphQL query. 17 4.1 A query sent to GraphQL server using Postman application. 27 4.2 A query with inline fragments. 29 4.3 A response to the query with inline fragments. 30 5.1 GraphQL query in disjunctive form. 35 xi 1 Introduction Software development methodologies, as well as software architec- tures are continually evolving. In the modern software development environment emerges a need for more flexible and customer oriented approach. Agile methodologies take over the software development world at the expense of older methods, for example, the waterfall model. Fast pivoting of a product based on new discoveries made during development is necessary to keep up with competition. Another factor is that the Internet is expanding into a wide variety of devices like smartphones, tablets, Internet of Things (IoT) devices and more. And the data flows through diverse network infrastructures. Mobile networks are common and with them a need to minimize the users consumption of data, for financial and performance reasons. In light of these facts an idea for GraphQL emerged. Especially mo- bile applications significantly suffer from a decreasing performance with an increasing complexity. GraphQL development started in Face- book as a solution to increasing complexity of their mobile application and other issues mentioned above [1]. Kentico Cloud is a CMS system. It provides users with its RESTful Delivery API. This thesis aims to examine GraphQL as an alternative to it. Its goal is to find out what adjustments would be necessary for a successful integration of GraphQL. In Chapter 3 is an analysis of possible solutions and approaches to this endeavor with a decision, how a proof of concept solution should be implemented. Chapter 4 breaks down concepts used in implementation and puts together a basic guide explaining how to use it. This solution is tested in last chapter. There is a list of metrics used for the experiment and an explanation why these metrics were selected. Kentico Cloud is used by other applications as a source of con- tent. It is a layer upon which these applications are dependent. Their performance is highly influenced by it. Therefore it is important to optimize it as much as possible. 1 2 How Kentico Cloud delivers content 2.1 CMS introduction A content management system(CMS) is a computer application for developers, marketers, content creators and other people involved in a production of websites, online stores, intranets or community sites. It makes it easier for them to develop it, manage the workflow of content publication and manage user roles and their access levels during the process [2, 3]. As this thesis revolves around Cloud CMS, in the next section are itemized ways how to move CMS functionality into the cloud. 2.1.1 Managed cloud hosting Managed cloud hosting is a CMS installed in the cloud mostly man- aged manually by the provider. It has the same needs. To make the product more appealing, vendor can take care of all the upgrades, hotfixes, security, backup and other issues. This is called managed cloud hosting. It lacks flexibility as typically the user has to contact the vendor and ask for deploying new changes to their production environment [4]. 2.1.2 Platform as a Service These problems can be solved using highly automated environments that with self-service configuration and deployment. It is called Plat- form as a Service (PaaS). Unfortunately, this approach also has its weaknesses. Users do not have full control over the hosting environ- ment. In addition, they still have to test if their website is not broken after every upgrade [4]. 2.1.3 Software as a Service Kentico Cloud CMS is an application built as Software as a Service(SaaS). As such it has some noticeable benefits over the models mentioned be- fore. The application runs on a server and it is completely maintained by the providing company. Users access it through a web browser. 3 2. How Kentico Cloud delivers content They do not have to be worried about updating their CMS applica- tion as with classic CMS installed on their computers. It is also called cloud-first1. Chiefly it runs as a multi-tenant SaaS service meaning all the users run the same version of the application and the provider manages only one standardized environment. This makes the job for the provider a lot easier [4]. 2.1.4 Headless CMS With traditional rigid CMS users often have to rewrite their code into a format defined by CMS. But modifying the code requires users to invest additional time and the application template they have to follow restricts them. It can be solved by using headless CMS(API-first CMS). This architecture cuts off the presentation layer, leaving the front-end part on the user and only provides the content for it through its application programming interface (API). Basically, it is an API to retrieve, work with and display data to populate a website or mobile application with. The API makes the content available on any of the various devices that are used nowadays (smartphones, virtual reality, IoT). Users can write their website or mobile application using any programming language and they can use their own development process. They only have to exchange their static code for the dynamic data obtained using the API. Thus using the CMS does not require to change the structure of their code as it happens in other non-headless models.
Recommended publications
  • Empirical Study on the Usage of Graph Query Languages in Open Source Java Projects
    Empirical Study on the Usage of Graph Query Languages in Open Source Java Projects Philipp Seifer Johannes Härtel Martin Leinberger University of Koblenz-Landau University of Koblenz-Landau University of Koblenz-Landau Software Languages Team Software Languages Team Institute WeST Koblenz, Germany Koblenz, Germany Koblenz, Germany [email protected] [email protected] [email protected] Ralf Lämmel Steffen Staab University of Koblenz-Landau University of Koblenz-Landau Software Languages Team Koblenz, Germany Koblenz, Germany University of Southampton [email protected] Southampton, United Kingdom [email protected] Abstract including project and domain specific ones. Common applica- Graph data models are interesting in various domains, in tion domains are management systems and data visualization part because of the intuitiveness and flexibility they offer tools. compared to relational models. Specialized query languages, CCS Concepts • General and reference → Empirical such as Cypher for property graphs or SPARQL for RDF, studies; • Information systems → Query languages; • facilitate their use. In this paper, we present an empirical Software and its engineering → Software libraries and study on the usage of graph-based query languages in open- repositories. source Java projects on GitHub. We investigate the usage of SPARQL, Cypher, Gremlin and GraphQL in terms of popular- Keywords Empirical Study, GitHub, Graphs, Query Lan- ity and their development over time. We select repositories guages, SPARQL, Cypher, Gremlin, GraphQL based on dependencies related to these technologies and ACM Reference Format: employ various popularity and source-code based filters and Philipp Seifer, Johannes Härtel, Martin Leinberger, Ralf Lämmel, ranking features for a targeted selection of projects.
    [Show full text]
  • Graphql Attack
    GRAPHQL ATTACK Date: 01/04/2021 Team: Sun* Cyber Security Research Agenda • What is this? • REST vs GraphQL • Basic Blocks • Query • Mutation • How to test What is the GraphQL? GraphQL is an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. GraphQL was developed internally by Facebook in 2012 before being publicly released in 2015. • Powerful & Flexible o Leaves most other decisions to the API designer o GraphQL offers no requirements for the network, authorization, or pagination. Sun * Cyber Security Team 1 REST vs GraphQL Over the past decade, REST has become the standard (yet a fuzzy one) for designing web APIs. It offers some great ideas, such as stateless servers and structured access to resources. However, REST APIs have shown to be too inflexible to keep up with the rapidly changing requirements of the clients that access them. GraphQL was developed to cope with the need for more flexibility and efficiency! It solves many of the shortcomings and inefficiencies that developers experience when interacting with REST APIs. REST GraphQL • Multi endpoint • Only 1 endpoint • Over fetching/Under fetching • Fetch only what you need • Coupling with front-end • API change do not affect front-end • Filter down the data • Strong schema and types • Perform waterfall requests for • Receive exactly what you ask for related data • No aggregating or filtering data • Aggregate the data yourself Sun * Cyber Security Team 2 Basic blocks Schemas and Types Sun * Cyber Security Team 3 Schemas and Types (2) GraphQL Query Sun * Cyber Security Team 4 Queries • Arguments: If the only thing we could do was traverse objects and their fields, GraphQL would already be a very useful language for data fetching.
    [Show full text]
  • Graphql-Tools Merge Schemas
    Graphql-Tools Merge Schemas Marko still misdoings irreproachably while vaulted Maximilian abrades that granddads. Squallier Kaiser curarize some presuminglyanesthetization when and Dieter misfile is hisexecuted. geomagnetist so slothfully! Tempting Weber hornswoggling sparsely or surmisings Pass on operation name when stitching schemas. The tools that it possible to merge schemas as well, we have a tool for your code! It can remember take an somewhat of resolvers. It here are merged, graphql with schema used. Presto only may set session command for setting some presto properties during current session. Presto server implementation of queries and merged together. Love writing a search query and root schema really is invalid because i download from each service account for a node. Both APIs have root fields called repository. That you actually look like this case you might seem off in memory datastore may have you should be using knex. The graphql with vue, but one round robin approach. The name signify the character. It does allow my the enums, then, were single introspection query at not top client level will field all the data plan through microservices via your stitched interface. The tools that do to other will a tool that. If they allow new. Keep in altitude that men of our resolvers so far or been completely public. Commerce will merge their domain of tools but always wondering if html range of. Based upon a merge your whole schema? Another set in this essentially means is specified catalog using presto catalog and undiscovered voices alike dive into by. We use case you how deep this means is querying data.
    [Show full text]
  • Arangodb Is Hailed As a Native Multi-Model Database by Its Developers
    ArangoDB i ArangoDB About the Tutorial Apparently, the world is becoming more and more connected. And at some point in the very near future, your kitchen bar may well be able to recommend your favorite brands of whiskey! This recommended information may come from retailers, or equally likely it can be suggested from friends on Social Networks; whatever it is, you will be able to see the benefits of using graph databases, if you like the recommendations. This tutorial explains the various aspects of ArangoDB which is a major contender in the landscape of graph databases. Starting with the basics of ArangoDB which focuses on the installation and basic concepts of ArangoDB, it gradually moves on to advanced topics such as CRUD operations and AQL. The last few chapters in this tutorial will help you understand how to deploy ArangoDB as a single instance and/or using Docker. Audience This tutorial is meant for those who are interested in learning ArangoDB as a Multimodel Database. Graph databases are spreading like wildfire across the industry and are making an impact on the development of new generation applications. So anyone who is interested in learning different aspects of ArangoDB, should go through this tutorial. Prerequisites Before proceeding with this tutorial, you should have the basic knowledge of Database, SQL, Graph Theory, and JavaScript. Copyright & Disclaimer Copyright 2018 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher.
    [Show full text]
  • Red Hat Managed Integration 1 Developing a Data Sync App
    Red Hat Managed Integration 1 Developing a Data Sync App For Red Hat Managed Integration 1 Last Updated: 2020-01-21 Red Hat Managed Integration 1 Developing a Data Sync App For Red Hat Managed Integration 1 Legal Notice Copyright © 2020 Red Hat, Inc. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/ . In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates. XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
    [Show full text]
  • Maîtriser Apache Jmeter Du Test De Charge À Devops
    Maîtriser Apache JMeter Du test de charge à Devops Antonio Gomes Rodrigues, Bruno Demion (Milamber) et Philippe Mouawad Ce livre est en vente à http://leanpub.com/maitriser-jmeter-du-test-de-charge-a-devops Version publiée le 2018-09-30 ISBN 978-2-9555036-1-4 Ce livre est publié par Leanpub. Leanpub permet aux auteurs et aux éditeurs de bénéficier du Lean Publishing. Lean Publishing consiste à publier à l’aide d’outils très simples de nombreuses itérations d’un livre électronique en cours de rédaction, d’obtenir des retours et commentaires des lecteurs afin d’améliorer le livre. © 2014 - 2018 Antonio Gomes Rodrigues, Bruno Demion (Milamber) et Philippe Mouawad Tweet ce livre ! S’il vous plaît aidez Antonio Gomes Rodrigues, Bruno Demion (Milamber) et Philippe Mouawad en parlant de ce livre sur Twitter ! Le tweet suggéré pour ce livre est : Je viens d’acheter Maîtriser Apache JMeter : Du test de charge à #Devops par @ra0077, @milamberspace, @philmdot sur https ://leanpub.com/maitriser-jmeter-du-test-de-charge-a-devops Le hashtag suggéré pour ce livre est #jmeter. Découvrez ce que les gens disent à propos du livre en cliquant sur ce lien pour rechercher ce hashtag sur Twitter : #jmeter Couverture et quatrième de couverture conçues par Cécile Platteeuw (C’grafic) Table des matières Droits ............................................ 1 Présentation des auteurs ................................ 2 Antonio Gomes Rodrigues ............................. 2 Bruno Demion (Milamber) ............................. 2 Philippe Mouawad (Philippe M.) ......................... 3 L’écosystème d’Apache JMeter ............................ 5 Introduction ...................................... 5 Plugin polyvalent ................................... 5 JMeter Plugins .................................. 5 JMeter dans le cloud ................................. 18 BlazeMeter .................................... 19 Tricentis Flood .................................. 23 Redline 13 ...................................
    [Show full text]
  • IBM Filenet Content Manager Technology Preview: Content Services Graphql API Developer Guide
    IBM FileNet Content Manager Technology Preview: Content Services GraphQL API Developer Guide © Copyright International Business Machines Corporation 2019 Copyright Before you use this information and the product it supports, read the information in "Notices" on page 45. © Copyright International Business Machines Corporation 2019. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. © Copyright International Business Machines Corporation 2019 Contents Copyright .................................................................................................................................. 2 Abstract .................................................................................................................................... 5 Background information ............................................................................................................ 6 What is the Content Services GraphQL API? ....................................................................................... 6 How do I access the Content Services GraphQL API? .......................................................................... 6 Developer references ................................................................................................................ 7 Supported platforms ............................................................................................................................ 7 Interfaces and output types ......................................................................................................
    [Show full text]
  • Studying Dependency Updates and a Framework for Multi-Versioning in Docker Containers by Sara Gholami Ghasem Abad
    Studying Dependency Updates and a Framework for Multi-Versioning in Docker Containers by Sara Gholami Ghasem Abad A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Software Engineering and Intelligent Systems Department of Electrical and Computer Engineering University of Alberta © Sara Gholami Ghasem Abad, 2020 Abstract Containerized software systems are becoming more popular and complex as they are one of the essential techniques that enable cloud computing. One of the enabling technologies for containerized software systems is the Docker framework. Docker is an open-source framework for deploying containers, lightweight, standalone, and executable units of software with all their dependencies (packages and libraries) that can run on any computing environment. Docker images facilitate deploying and upgrading systems as all of the dependencies required for a software package are included in an image. However, there exist several risks with running Docker images in production environments. One risky situation can occur when upgrading images, as an upgrade may result in many changing packages or libraries at once. Therefore, in this thesis, we study the Docker images and analyze them to identify the risks of package changes. Also, we propose our solution, DockerMV, to mitigate this risk by running multiple versions of an image at the same time. In this first part of this thesis, we analyze the official Docker image repositories that are available on Docker Hub, Docker’s public registry that holds Docker images. For each image in these repositories, we extract details about its native, Node, and Python packages. Afterward, we investigate which types of applications have more package changes in their image upgrades.
    [Show full text]
  • Storing Metagraph Model in Relational, Document- Oriented, and Graph Databases
    Storing Metagraph Model in Relational, Document- Oriented, and Graph Databases © Valeriy M. Chernenkiy © Yuriy E. Gapanyuk © Yuriy T. Kaganov © Ivan V. Dunin © Maxim A. Lyaskovsky © Vadim S. Larionov Bauman Moscow State Technical University, Moscow, Russia [email protected], [email protected], [email protected], [email protected], [email protected], [email protected] Abstract. This paper proposes an approach for metagraph model storage in databases with different data models. The formal definition of the metagraph data model is given. The approaches for mapping the metagraph model to the flat graph, document-oriented, and relational data models are proposed. The limitations of the RDF model in comparison with the metagraph model are considered. It is shown that the metagraph model addresses RDF limitations in a natural way without emergence loss. The experiments result for storing the metagraph model in different databases are given. Keywords: metagraph, metavertex, flat graph, graph database, document-oriented database, relational database. adapted for information systems description by the 1 Introduction present authors [2]. According to [2]: = , , , At present, on the one hand, the domains are becoming where – metagraph; – set of metagraph more and more complex. Therefore, models based on vertices; – set of〈 metagraph metavertices; 〉 – complex graphs are increasingly used in various fields of set of metagraph edges. science from mathematics and computer science to A metagraph vertex is described by the set of biology and sociology. attributes: = { }, , where – metagraph On the other hand, there are currently only graph vertex; – attribute. databases based on flat graph or hypergraph models that A metagraph edge is described∈ by the set of attributes, are not capable enough of being suitable repositories for the source and destination vertices and edge direction complex relations in the domains.
    [Show full text]
  • Arangodb Cookbook
    Table of Contents Introduction 1.1 Modelling Document Inheritance 1.2 Accessing Shapes Data 1.3 AQL 1.4 Using Joins in AQL 1.4.1 Using Dynamic Attribute Names 1.4.2 Creating Test-data using AQL 1.4.3 Diffing Documents 1.4.4 Avoiding Parameter Injection 1.4.5 Multiline Query Strings 1.4.6 Migrating named graph functions to 3.0 1.4.7 Migrating anonymous graph functions to 3.0 1.4.8 Migrating graph measurements to 3.0 1.4.9 Graph 1.5 Fulldepth Graph-Traversal 1.5.1 Using a custom Visitor 1.5.2 Example AQL Queries for Graphs 1.5.3 Use Cases / Examples 1.6 Crawling Github with Promises 1.6.1 Using ArangoDB with Sails.js 1.6.2 Populating a Textbox 1.6.3 Exporting Data 1.6.4 Accessing base documents with Java 1.6.5 Add XML data to ArangoDB with Java 1.6.6 Administration 1.7 Using Authentication 1.7.1 Importing Data 1.7.2 Replicating Data 1.7.3 XCopy Install Windows 1.7.4 Silent NSIS on Windows 1.7.5 Migrating 2.8 to 3.0 1.7.6 Show grants function 1.7.7 Compiling / Build 1.8 Compile on Debian 1.8.1 Compile on Windows 1.8.2 OpenSSL 1.8.3 Running Custom Build 1.8.4 Recompiling jemalloc 1.8.4.1 Cloud, DCOS and Docker 1.9 Running on AWS 1.9.1 Update on AWS 1.9.2 1 Running on Azure 1.9.3 Docker ArangoDB 1.9.4 Docker with NodeJS App 1.9.5 In the GiantSwarm 1.9.6 ArangoDB in Mesos 1.9.7 DC/OS: Full example 1.9.8 Monitoring 1.10 Collectd - Replication Slaves 1.10.1 Collectd - Network usage 1.10.2 Collectd - more Metrics 1.10.3 Collectd - Monitoring Foxx 1.10.4 2 Introduction Cookbook This cookbook is filled with recipes to help you understand the multi-model database ArangoDB better and to help you with specific problems.
    [Show full text]
  • Graphql at Enterprise Scale a Principled Approach to Consolidating a Data Graph
    A Principled Approach to Consolidating a Data Graph GraphQL at Enterprise Scale A Principled Approach to Consolidating a Data Graph Jeff Hampton Michael Watson Mandi Wise GraphQL at Enterprise Scale Copyright © 2020 Apollo Graph, Inc. Published by Apollo Graph, Inc. https://www.apollographql.com/ All rights reserved. No part of this book may be reproduced in any form on by an electronic or mechanical means, including information storage and retrieval systems, without permission in writing from the publisher. You may copy and use this document for your internal, reference purposes. You may modify this document for your internal, reference purposes This document is provided “as-is”. Information and views expressed in this document may change without notice. While the advice and information in this document is believed to be true and accurate at the date of publication, the publisher and the authors assume no legal responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. Revision History for the First Edition 2020-09-11: First Release 2020-10-27: Second Release 2020-12-10: Third Release 2021-04-26: Fourth Release Contents The Team v Preface vi Who Should Read this Guide . vi What You’ll Learn from this Guide . vii How to Contact Us . vii Moving Toward GraphQL Consolidation 1 Why Consolidate Your Data Graph? . 1 What Does a Consolidated Data Graph Look Like? . 8 When to Consolidate Your Data Graph . 9 Summary . 14 Graph Champions in the Enterprise 15 The Graph Champion and Graph Administration . 15 Delivering Organizational Excellence as a Graph Champion .
    [Show full text]
  • Kuali Student Service System: Technical Architecture Phase 1 Recommendations
    Kuali Student Service System Technical Architecture Phase 1 Recommendations Kuali Student Service System Technical Architecture Phase 1 Recommendations December 31 2007 Kuali Student Technical Team Technical Architecture Phase 1 deliverables 2/14/2008 1 Kuali Student Service System Technical Architecture Phase 1 Recommendations Table of Contents 1 OVERVIEW ........................................................................................................................ 4 1.1 REASON FOR THE INVESTIGATION ................................................................................... 4 1.2 SCOPE OF THE INVESTIGATION ....................................................................................... 4 1.3 METHODOLOGY OF THE INVESTIGATION .......................................................................... 4 1.4 CONCLUSIONS ............................................................................................................... 5 1.5 DECISIONS THAT HAVE BEEN DELAYED ............................................................................ 6 2 STANDARDS ..................................................................................................................... 7 2.1 INTRODUCTION .............................................................................................................. 7 2.2 W3C STANDARDS .......................................................................................................... 7 2.3 OASIS STANDARDS ......................................................................................................
    [Show full text]