The Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh
|
|
- Harriet Hawkins
- 5 years ago
- Views:
Transcription
1 The Future of the Realtime Web BETTER APIS WITH GRAPHQL Josh
2
3 STEPPING STONES TO FP Language (Elixir) Strongly-Typed APIs (GraphQL)
4 GRAPHQL WAS HERE?
5 A TAXONOMY OF COMMON ISSUES WITH REST
6 PERFORMANCE
7 UNDERFETCHING
8 COMMON ISSUES WITH REST UNDERFETCHING N + 1 HTTP request problem eg. Fetched a Blog Post but not Comments Must make more requests to fulfil data requirements For complex views we saw 6-7 requests (usually serial) Have seen up to 25+ requests in the wild
9 OVERFETCHING
10 COMMON ISSUES WITH REST OVERFETCHING Client wants a small subset of data from endpoint But gets everything regardless The addition of fields to a endpoint bloats payloads Create more endpoints, but this means more roundtrips Could create a homepage specific endpoint for each device, but harder to manage
11 BIG UPFRONT DESIGN
12 COMMON ISSUES WITH REST BIG UPFRONT DESIGN NEEDED Need to anticipate all current and future clients needs ie Mobile v Web clients Could have multiple representations/endpoints Divergence of server code Keeping everything in sync is hard
13 HYPERMEDIA?
14 COMMON ISSUES WITH REST HYPERMEDIA ISN T ALWAYS APPLICABLE If you control the clients and the server Less useful for your web or mobile app calling a known API 1000x / sec Semantics are communicated out of the A self-describing, well-typed API is an alternative approach
15 GRAPHQL
16 GRAPHQL HISTORY WHAT IS GRAPHQL? Language for defining schemas, types & queries It s a specification for that language (like OpenAPI, Swagger) Developed by Facebook in 2012 Used internally to improve mobile app performance Served 300B+ requests per day (1.6B DAU on mobile) Open sourced spec in mid 2015
17 GENERALISED DATA FETCHING
18
19 GRAPHQL APIS ARE EASIER TO BUILD
20 GRAPHQL APIS ARE EASIER TO CONSUME
21 BETTER PERFORMANCE
22 SELF DESCRIBING AND SELF DOCUMENTING
23 EXPOSE YOUR DOMAIN MODEL VIA CONSUMER DRIVEN CONTRACTS
24 QUERIES AND RESPONSES ARE ISOMORPHIC
25 TYPES IN YOUR SCHEMA == STRONGLY TYPED APIS
26 BUILT-IN FIELD DEPRECATION MEANS EASIER EVOLUTION
27 MYTHS & MISCONCEPTIONS
28 YOU DO NOT NEED A GRAPH DATABASE
29 THIS IS NOT YOUR TYPICAL QUERY LANGUAGE
30 NOT ONLY FOR JAVASCRIPT LANGUAGE AGNOSTIC
31 NOT DEPENDENT ON HTTP OR JSON
32 IT S EASIER TO WORK WITH BUT DOES NOT REPLACE REST
33 POTENTIALLY MAKES REST EASIER
34 LET S LEARN SOME GRAPHQL CONCEPTS
35 SCHEMAS, TYPES AND SCALARS GraphQL SDL type Meetup { title: String! date: Date description: String url: URL! talks: [Talk!]! } type Talk { title: String! description: Markdown presenter: Person! } schema { query: Query mutation: Mutation }
36 SCHEMAS, TYPES AND SCALARS GraphQL SDL Elixir with Absinthe type Meetup { title: String! date: Date description: String url: URL! talks: [Talk!]! } type Talk { title: String! description: String presenter: Person! } schema { query: Query mutation: Mutation "A meetup object :meetup "The title of the meetup" field :title, "The date of the meetup" field :date, "The description of the meetup" field :description, "The Meetup.com url" field :url, "The talks at the meetup" field :talks, list_of(:talk) end
37 GRAPHQL CONCEPTS RESOLVER FUNCTIONS FETCH YOUR DATA Resolver functions fetch (or update) data Called when query fields are matched against schema fields Return data or an error Can take arguments specified in schema Can take a context in from the query (ie current user for authentication and authorisation)
38 GRAPHQL CONCEPTS RESOLVER FUNCTIONS (ELIXIR EXAMPLE) defmodule GraphqlSydney.GraphQL.Schema do use Absinthe.Schema alias GraphqlSydney.Events import_types Absinthe.Type.Custom query "Get the next meetup" field :next_meetup, type: :meetup do resolve fn _, _ -> {:ok, Events.next_meetup} end "Get the previous meetups" field :previous_meetups, type: list_of(:meetup) do resolve fn _, _ -> {:ok, Events.past_meetups} end end end end
39 GRAPHQL CONCEPTS QUERY PROCESSING PIPELINE Client send Query documents as Strings Server Parses into AST Validation of AST Query fields matched against Schema Matching resolver functions executed Data (and errors) returned to client as a Map
40 SIMPLE QUERY LIFECYCLE Run Resolver Functions Data Fetching 1 Query (String) 2 DB CLIENT 4 Response (Map) 3 CMS
41 LET S SEE IT IN ACTION!
42
43 QUERY: FETCH NEXT MEETUP
44 QUERY: AUTOCOMPLETE / AUTOCORRECTION
45 QUERY: FETCH NEXT MEETUP S TALKS
46 QUERY: INLINE DOCUMENTATION
47 QUERY: MEETUP WITH TALKS AND PRESENTERS
48 GETTING STARTED
49 HOW TO GET STARTED WITH GRAPHQL STEP 1: PICK A SERVER IMPLEMENTATION JavaScript reference implementation Apollo Server Tools Java / Scala (Sangria).NET / F# Ruby / Python / PHP Elixir / Erlang Go / Rust / Haskell
50 HOW TO GET STARTED WITH GRAPHQL STEP 2: WRITE YOUR SCHEMA Figure out your domain types Write top level queries for reads Add mutations for writes Subscriptions for reactive data changes Don t forget field descriptions!
51 HOW TO GET STARTED WITH GRAPHQL STEP 3: CHOOSE A CLIENT Relay Modern Declare data requirements of UI component as query fragments Sends a single query Render collects query fragments in the render tree Caches objects by unique ID Added graph convention of nodes and edges Pagination metadata, etc Not actually part of the spec and can be confusing
52 HOW TO GET STARTED WITH GRAPHQL STEP 3: CHOOSE A CLIENT Apollo 2.0 Bit simpler than Relay, no graph conventions Hand rolled queries for each view Handles client side caching Probably easiest to start here Also has native ios and Android client libs
53 HOW TO GET STARTED WITH GRAPHQL STEP 4: PROFIT Start with read only first Shim existing REST APIs Frontend and Backend need to be on board Easy to experiment Try it out on new non-critical path projects
54 THINGS TO WATCH OUT FOR
55 THINGS TO WATCH OUT FOR COMPLEX AND PATHOLOGICAL QUERIES Denial of Service possible for slow queries Be careful with exposing sorting, filtering and aggregation ie Don t expose a sort field without an index Limit query depth and/or complexity Not all implementations have this though Instrumentation can alleviate this
56 THINGS TO WATCH OUT FOR AVOID STRINGLY TYPING It s very easy overuse plain String types You lose information: makes mocking harder There are no type aliases in the spec (yet) Can write your own custom Scalars (impl specific) Fine-grained Micro-types are useful ie URL, , Markdown, Name, Money, etc
57 THINGS TO WATCH OUT FOR NO HTTP CACHING Can send queries by GET POST is preferred Can t use standard HTTP caching Varnish, Squid, etc Can cache elsewhere however Client, Resolvers, Data Store, etc
58 RICH TOOLING ECOSYSTEM
59 EXPORATION & VISUALISATION
60
61
62
63
64
65
66 GRAPHQL SERVER ANALYTICS
67
68 QUERY EXECUTION TRACING
69 INTEGRATED CACHE MANAGEMENT
70 ERROR TRACKING
71 SCHEMA ANALYSIS
72 SCHEMA STITCHING AND COMPOSITION
73 SCHEMA COMPOSITION
74
75 SCHEMA STITCHING GRAFT
76 TOOL ECOSYSTEM SCHEMA COMPOSITION TOOLS Apollo Schema Stitching Gramps the IBM microservice API composition framework GraphQL Weaver
77 API MOCKING
78
79 GRAPHQL STACKS
80
81
82
83
84 CMS BACKENDS
85
86
87 GRAPHQL BACKENDS AS A SERVICE
88
89
90
91 REALTIME APIS WITH SUBSCRIPTIONS
92 HTTP/2 PUSH AND THE RISE OF REACTIVE BACKENDS
93 HAS GRAPHQL CROSSED THE CHASM?
94
95 GRAPHQL IS HERE
96 NEXT STEPS RESOURCES GraphQL Summit Videos list=plpi1lpb6opqywks7yyys5jjairi3fartm
GraphQL in Python and Django. Patrick
GraphQL in Python and Django Patrick Arminio @patrick91 Who am I Patrick Arminio Backend Engineer @ Verve Chairperson at Python Italia @patrick91 online GraphQL? WEB 1.0 WEB 2.0 REST APIs While REST
More informationGraphQL: Mind Your Ps and QLs
GraphQL: Mind Your Ps and QLs Misha Kotov Sr. Product Manager @mish_capish Cristian Partica MTS 1, Software Engineer @magento_chris The Beginning GraphQL Data query language developed internally by Facebook
More informationLOG8430: Architecture logicielle et conception avancée
LOG8430: Architecture logicielle et conception avancée Microservices, REST and GraphQL Automne 2017 Fabio Petrillo Chargé de Cours This work is licensed under a Creative 1 Commons Attribution-NonCommercialShareAlike
More informationIBM s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM s sole discretion.
Please note Copyright 2018 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM IBM s statements
More informationGraphQL. Concepts & Challenges. - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub
GraphQL Concepts & Challenges - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub Rails API WHY - You have your Rails app, why bother with an API? - You have clients.
More informationREST API Documentation Using OpenAPI (Swagger)
REST API Documentation Using OpenAPI (Swagger) Modern technology for modern web frontends Martyn Kemp, Consultingwerk Ltd. martyn.kemp@consultingwerk.de http://www.consultingwerk.de/ 2 Consultingwerk Ltd.
More informationOracle APEX 18.1 New Features
Oracle APEX 18.1 New Features May, 2018 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated
More informationPROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/...
PROCE55 Mobile: Web API App PROCE55 Mobile with Test Web API App Web API App Example This example shows how to access a typical Web API using your mobile phone via Internet. The returned data is in JSON
More informationThe EHRI GraphQL API IEEE Big Data Workshop on Computational Archival Science
The EHRI GraphQL API IEEE Big Data Workshop on Computational Archival Science 13/12/2017 Mike Bryant CONNECTING COLLECTIONS The EHRI Project The main objective of EHRI is to support the Holocaust research
More informationGraphQL - when REST API is not
GraphQL - when REST API is not GraphQL - when RESTlearned API is enough - lessons not enough - Marcin lessons Stachniuk learned Marcin Stachniuk Marcin Stachniuk mstachniuk.github.io /mstachniuk/graphql-java-example
More informationEvolution of the "Web
Evolution of the "Web App" @HenrikJoreteg @Hoarse_JS THIS USED TO BE SIMPLE! 1. WRITE SOME HTML 2. LAY IT OUT WITH FRAMES OR TABLES 3. FTP IT TO A SERVER! 4. BAM! CONGRATULATIONS, YOU RE A WEB DEVELOPER!
More informationMake your application real-time with PubSubHubbub. Brett Slatkin May 19th, 2010
Make your application real-time with PubSubHubbub Brett Slatkin May 19th, 2010 View live notes and ask questions about this session on Google Wave http://tinyurl.com/push-io2010 Me http://onebigfluke.com
More informationDiscover GraphQL with Python, Graphene and Odoo. FOSDEM Stéphane Bidoul Version 1.0.4
Discover GraphQL with Python, Graphene and Odoo FOSDEM 2019-02-03 Stéphane Bidoul Version 1.0.4 2 / 47 A short story Why this talk 3 / 47 /me in a nutshell @sbidoul CTO of (https://acsone.eu)
More informationConsumer Driven Contract Testing with Pact and Docker. By Harry
Consumer Driven Contract Testing with Pact and Docker By Harry Winser @Hazz223 1 2 OR CONFIDENCE IN PRODUCTION In the beginning, there were monoliths Image from: http://odino.org/on-monoliths-service-oriented-architectures-and-microservices/
More informationServerless Architecture Hochskalierbare Anwendungen ohne Server. Sascha Möllering, Solutions Architect
Serverless Architecture Hochskalierbare Anwendungen ohne Server Sascha Möllering, Solutions Architect Agenda Serverless Architecture AWS Lambda Amazon API Gateway Amazon DynamoDB Amazon S3 Serverless Framework
More informationDeliverable 4.1.a: Design of Marketplace First Release
BIG IoT Bridging the Interoperability Gap of the Internet of Things Deliverable 4.1.a: Design of Marketplace First Release Version 1.0 State: Final Date: 23.12.2016 This project has received funding from
More informationUsing the MySQL Document Store
Using the MySQL Document Store Alfredo Kojima, Sr. Software Dev. Manager, MySQL Mike Zinner, Sr. Software Dev. Director, MySQL Safe Harbor Statement The following is intended to outline our general product
More informationMicroservices. SWE 432, Fall 2017 Design and Implementation of Software for the Web
Micros SWE 432, Fall 2017 Design and Implementation of Software for the Web Today How is a being a micro different than simply being ful? What are the advantages of a micro backend architecture over a
More informationConnexion Documentation
Connexion Documentation Release 0.5 Zalando SE Nov 16, 2017 Contents 1 Quickstart 3 1.1 Prerequisites............................................... 3 1.2 Installing It................................................
More informationRESTful API Design APIs your consumers will love
RESTful API Design APIs your consumers will love Matthias Biehl RESTful API Design Copyright 2016 by Matthias Biehl All rights reserved, including the right to reproduce this book or portions thereof in
More informationMakbul Khan. Nikhil Sukul
Makbul Khan Acquia Certified Developer Senior Software Engineer makbul_khan8 makbul_khan08 Nikhil Sukul Senior Drupal Architect nikhilsukul nikhilsukul Topics 1. What is Isomorphic JavaScript 2. Why Isomorphic
More informationfunctional ErlangVM Parallelism
functional functional ErlangVM functional ErlangVM Parallelism Who wants to go and build a system in Elixir? You shouldn t Elixir, Your Monolith and You Tobias Pfeiffer @PragTob pragtob.info Your Monolith
More informationIntroduction to GraphQL and Relay. Presenter: Eric W. Greene
Introduction to GraphQL and Relay Presenter: Eric W. Greene Welcome to the Webinar! Welcome to the webinar on GraphQL and Relay!!! We will review a few slides, then experiment with GraphQL and review GraphQL
More informationUnderstanding RESTful APIs and documenting them with Swagger. Presented by: Tanya Perelmuter Date: 06/18/2018
Understanding RESTful APIs and documenting them with Swagger Presented by: Tanya Perelmuter Date: 06/18/2018 1 Part 1 Understanding RESTful APIs API types and definitions REST architecture and RESTful
More informationADVANCED DATABASES CIS 6930 Dr. Markus Schneider. Group 5 Ajantha Ramineni, Sahil Tiwari, Rishabh Jain, Shivang Gupta
ADVANCED DATABASES CIS 6930 Dr. Markus Schneider Group 5 Ajantha Ramineni, Sahil Tiwari, Rishabh Jain, Shivang Gupta WHAT IS ELASTIC SEARCH? Elastic Search Elasticsearch is a search engine based on Lucene.
More informationHomework 8: Ajax, JSON and Responsive Design Travel and Entertainment Search (Bootstrap/Angular/AJAX/JSON/jQuery /Cloud Exercise)
Homework 8: Ajax, JSON and Responsive Design Travel and Entertainment Search (Bootstrap/Angular/AJAX/JSON/jQuery /Cloud Exercise) 1. Objectives Get familiar with the AJAX and JSON technologies Use a combination
More informationUsing Swagger to tame HTTP/JSON interfaces. John Billings
Using Swagger to tame HTTP/JSON interfaces John Billings billings@yelp.com Yelp s Mission: Connecting people with great local businesses. Yelp Stats: As of Q3 2015 89M 90M 71% 32 HTTP/JSON is amazing!
More informationBuild Mobile Cloud Apps Effectively Using Oracle Mobile Cloud Services (MCS)
Build Mobile Cloud Apps Effectively Using Oracle Mobile Cloud Services (MCS) Presented by: John Jay King Download this paper from: 1 Session Objectives Understand the need for something like Oracle Mobile
More informationCS 498RK FALL RESTFUL APIs
CS 498RK FALL 2017 RESTFUL APIs Designing Restful Apis blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/ www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api Resources
More informationFuture Web App Technologies
Future Web App Technologies Mendel Rosenblum MEAN software stack Stack works but not the final say in web app technologies Angular.js Browser-side JavaScript framework HTML Templates with two-way binding
More informationMicroservices without the Servers: AWS Lambda in Action
Microservices without the Servers: AWS Lambda in Action Dr. Tim Wagner, General Manager AWS Lambda August 19, 2015 Seattle, WA 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Two
More informationSeminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE
A Seminar report On Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE SUBMITTED TO: SUBMITTED BY: www.studymafia.org www.studymafia.org Acknowledgement
More informationEvaluation Guide for ASP.NET Web CMS and Experience Platforms
Evaluation Guide for ASP.NET Web CMS and Experience Platforms CONTENTS Introduction....................... 1 4 Key Differences...2 Architecture:...2 Development Model...3 Content:...4 Database:...4 Bonus:
More informationcom.walmartlabs/lacinia-pedestal Documentation
com.walmartlabs/lacinia-pedestal Documentation Release 0.10.1 Walmartlabs Sep 14, 2018 Contents 1 Overview 3 2 Request Format 5 2.1 GET................................................... 5 2.2 POST (application/json).........................................
More informationIntegration and Extensibility
Integration and Extensibility The OpenEdge Strategy Mike Marriage Senior Principal Product Manager mmarriag@progress.com Agenda Introduction Data, Data Everywhere The Tools Of The Trade Final Thoughts
More informationTo Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,
To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry Tony Erwin, aerwin@us.ibm.com Agenda Origins of the Bluemix UI Demons of the Monolith Slaying Demons with
More informationImprove WordPress performance with caching and deferred execution of code. Danilo Ercoli Software Engineer
Improve WordPress performance with caching and deferred execution of code Danilo Ercoli Software Engineer http://daniloercoli.com Agenda PHP Caching WordPress Page Caching WordPress Object Caching Deferred
More informationTeach your (micro)services speak Protocol Buffers with grpc.
Teach your (micro)services speak Protocol Buffers with grpc. Mihai Iachimovschi @mishunika mihai.iachimovschi@gmail.com What s inside? What s inside? Message serialization and deserialization What s inside?
More informationAbout 1. Chapter 1: Getting started with odata 2. Remarks 2. Examples 2. Installation or Setup 2. Odata- The Best way to Rest 2
odata #odata Table of Contents About 1 Chapter 1: Getting started with odata 2 Remarks 2 Examples 2 Installation or Setup 2 Odata- The Best way to Rest 2 Chapter 2: Azure AD authentication for Node.js
More informationMatt Meteor Development Group
A R C H I T E C T I N G M O D E R N J A V A S C R I P T A P P L I C A T I O N S Matt DeBergalis @debergalis Meteor Development Group www.meteor.com github.com/meteor/meteor Honeywell https://www.openroad.ca/portfolio/honeywell
More informationDevelop Mobile Front Ends Using Mobile Application Framework A - 2
Develop Mobile Front Ends Using Mobile Application Framework A - 2 Develop Mobile Front Ends Using Mobile Application Framework A - 3 Develop Mobile Front Ends Using Mobile Application Framework A - 4
More informationEmberJS A Fitting Face for a D8 Backend. Taylor Solomon
EmberJS A Fitting Face for a D8 Backend Taylor Solomon taylor.solomon @jtsolomon http://interactivestrategies.com 2 Years Ago 2 Years Ago URL Ember Data assumes a few things. - Your API format is JSON
More informationZombie Apocalypse Workshop
Zombie Apocalypse Workshop Building Serverless Microservices Danilo Poccia @danilop Paolo Latella @LatellaPaolo September 22 nd, 2016 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
More informationImproving Drupal search experience with Apache Solr and Elasticsearch
Improving Drupal search experience with Apache Solr and Elasticsearch Milos Pumpalovic Web Front-end Developer Gene Mohr Web Back-end Developer About Us Milos Pumpalovic Front End Developer Drupal theming
More informationIl Mainframe e il paradigma dell enterprise mobility. Carlo Ferrarini zsystems Hybrid Cloud
Il Mainframe e il paradigma dell enterprise mobility Carlo Ferrarini carlo_ferrarini@it.ibm.com zsystems Hybrid Cloud Agenda Exposing enterprise assets in the API Economy Era Deliver natural APIs from
More informationHigh Volume Messaging with IBM MessageSight for use in Mobile, Web and M2M solutions
High Volume Messaging with IBM MessageSight for use in Mobile, Web and M2M solutions Dave Locke IBM Software Group Trademark Statement IBM and the IBM logo are trademarks of International Business Machines
More informationExploring the Nuxeo REST API
Exploring the Nuxeo REST API Enabling Rapid Content Application Craftsmanship Copyright 2018 Nuxeo. All rights reserved. Copyright 2017 Nuxeo. All rights reserved. Chapter 1 The Nuxeo REST API What do
More informationLesson 14 SOA with REST (Part I)
Lesson 14 SOA with REST (Part I) Service Oriented Architectures Security Module 3 - Resource-oriented services Unit 1 REST Ernesto Damiani Università di Milano Web Sites (1992) WS-* Web Services (2000)
More informationCopyright 2014 Blue Net Corporation. All rights reserved
a) Abstract: REST is a framework built on the principle of today's World Wide Web. Yes it uses the principles of WWW in way it is a challenge to lay down a new architecture that is already widely deployed
More informationDatabase Driven Web 2.0 for the Enterprise
May 19, 2008 1:30 p.m. 2:30 p.m. Platform: Linux, UNIX, Windows Session: H03 Database Driven Web 2.0 for the Enterprise Rav Ahuja IBM Agenda What is Web 2.0 Web 2.0 in the Enterprise Web 2.0 Examples and
More informationNick Terkay CSCI 7818 Web Services 11/16/2006
Nick Terkay CSCI 7818 Web Services 11/16/2006 Ning? Start-up co-founded by Marc Andreeson, the co- founder of Netscape. October 2005 Ning is an online platform for painlessly creating web apps in a jiffy.
More informationIntroduction to Worklight Integration IBM Corporation
Introduction to Worklight Integration Agenda IBM Mobile Foundation Introduction to Worklight How to Integrate Worklight Adapters WebAPI HTTP & SOAP Database (SQL) WebSphere Message Broker Cast Iron 2 IBM
More informationOData: What s New with REST APIs for Your Database. Sanjeev Mohan, Gartner Nishanth Kadiyala, Progress Mark Biamonte, OData TC Member, Progress
OData: What s New with REST APIs for Your Database Sanjeev Mohan, Gartner Nishanth Kadiyala, Progress Mark Biamonte, OData TC Member, Progress Audio Bridge Options & Question Submission 2 OData: What s
More informationHow to Pick the Right PI Developer Technology for your Project
How to Pick the Right PI Developer Technology for your Project Presented by Patrice Thivierge Fortin Regional Services Lead, France Why talking about picking the right PI Developer Technology? To provide
More informationProgramming School for 21 st Century. syllabus MOBILE BACKEND DEVOPS
Programming School for 21 st Century syllabus MOBILE BACKEND DEVOPS Overview Refactory Syllabus This is our guideline to help students improve their programming skills, to be an international-level so
More informationDreamFactory Security Guide
DreamFactory Security Guide This white paper is designed to provide security information about DreamFactory. The sections below discuss the inherently secure characteristics of the platform and the explicit
More informationMigrating Legacy.com. Migrating a top 50 most visited site in the U.S. onto Drupal Legacy.com. Case Study
Migrating Legacy.com Migrating a top 50 most visited site in the U.S. onto Drupal Legacy.com Case Study Migrating Legacy.com Jordan Ryan Product Owner Ankur Gupta Lead Developer Bassam Ismail Front-end
More informationMicroservices on AWS. Matthias Jung, Solutions Architect AWS
Microservices on AWS Matthias Jung, Solutions Architect AWS Agenda What are Microservices? Why Microservices? Challenges of Microservices Microservices on AWS What are Microservices? What are Microservices?
More informationBuild Meeting Room Management Website Using BaaS Framework : Usergrid
Build Meeting Room Management Website Using BaaS Framework : Usergrid Alvin Junianto Lan 13514105 Informatics, School of Electrical Engineering and Informatics Bandung Institute of Technology Bandung,
More informationIncrementally migratng large apps to Phoenix. Ruby Elixir Conf Taiwan 2018 Jake
Incrementally migratng large apps to Phoenix Ruby Elixir Conf Taiwan 2018 Jake Morrison @cogini Agenda Why migrate to Phoenix How to migrate Why? Rails is a great way to quickly create applicatons It hits
More informationDistributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems
Distributed Architectures & Microservices CS 475, Spring 2018 Concurrent & Distributed Systems GFS Architecture GFS Summary Limitations: Master is a huge bottleneck Recovery of master is slow Lots of success
More informationController/server communication
Controller/server communication Mendel Rosenblum Controller's role in Model, View, Controller Controller's job to fetch model for the view May have other server communication needs as well (e.g. authentication
More informationAngular 2 and Hexo. Static Meets Dynamic For the Best of Both Worlds! Copyright 2016 Code Career Academy
Angular 2 and Hexo Static Meets Dynamic For the Best of Both Worlds! Who am I? Jeff Ammons Microsoft MVP Pluralsight Author CEO/Chief Instructor at Code Career Academy 25 Years Professional Experience
More informationThe decoupled CMS in financial services. Preston So 8 Nov 2017 Open Source Strategy Forum 2017
The decoupled CMS in financial services Preston So 8 Nov 2017 Open Source Strategy Forum 2017 Welcome! Preston So has been a web developer and designer since 2001, a creative professional since 2004, and
More informationUpload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an with the URL Grading:
CS 183 4/6/2010 Build a simple HTML page, topic of your choice Will use this as a basis and gradually and add more features as the class progresses Need to be done with your favorite text editor, no visual
More informationAzure Integration Services
Azure Integration Services 2018 Microsoft Corporation. All rights reserved. This document is provided "as-is." Information and views expressed in this document, including URL and other Internet Web site
More informationAEM Forms: Rest API Integration as a Datasource
AEM Forms: Rest API Integration as a Datasource Samit Narula, Technical Architect, Overview The Swagger (OpenAPI) specification is quite detailed and defines various directives, constraints, and configurations
More informationWeb Applications. Software Engineering 2017 Alessio Gambi - Saarland University
Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system
More informationTop 7 Data API Headaches (and How to Handle Them) Jeff Reser Data Connectivity & Integration Progress Software
Top 7 Data API Headaches (and How to Handle Them) Jeff Reser Data Connectivity & Integration Progress Software jreser@progress.com Agenda Data Variety (Cloud and Enterprise) ABL ODBC Bridge Using Progress
More informationDevelop and test your Mobile App faster on AWS
Develop and test your Mobile App faster on AWS Carlos Sanchiz, Solutions Architect @xcarlosx26 #AWSSummit 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. The best mobile apps are
More informationPerformance Platform Documentation
Performance Platform Documentation Release 1.0 Performance Platform July 20, 2017 Contents 1 Adding data 3 2 Emptying a data set 5 3 Client implementations 7 4 Glossary 9 5 Get a Performance Platform
More informationMarkLogic Server. Reference Application Architecture Guide. MarkLogic 9 May, Copyright 2017 MarkLogic Corporation. All rights reserved.
Reference Application Architecture Guide 1 MarkLogic 9 May, 2017 Last Revised: 9.0-1, May, 2017 Copyright 2017 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Reference
More informationSAP API Management and API Business Hub Overview
SAP API Management and API Business Hub Overview Harsh Jegadeesan Head of Product Management, Digital Transformation Services, SAP Cloud Platform Overview Accelarate your digital transformation with APIs
More informationAzure Developer Immersions API Management
Azure Developer Immersions API Management Azure provides two sets of services for Web APIs: API Apps and API Management. You re already using the first of these. Although you created a Web App and not
More informationITP 140 Mobile Technologies. Mobile Topics
ITP 140 Mobile Technologies Mobile Topics Topics Analytics APIs RESTful Facebook Twitter Google Cloud Web Hosting 2 Reach We need users! The number of users who try our apps Retention The number of users
More informationSignals Documentation
Signals Documentation Release 0.1 Yeti November 22, 2015 Contents 1 Quickstart 1 2 What is Signals? 3 3 Contents 5 3.1 Get Started................................................ 5 3.2 Try the Demo Server...........................................
More informationProject Zygote. Rapid prototyping for the Internet of Things
Project Zygote Rapid prototyping for the Internet of Things The Problem we set out to solve How to make interconnecting things easier? What IoT means to us Seamless interconnection between any IoT enabled
More informationAPI DOCUMENTATION THE SECRET TO A GREAT API DEVELOPER EXPERIENCE. API Documentation: The Secret to a Great API Developer Experience
API DOCUMENTATION THE SECRET TO A GREAT API DEVELOPER EXPERIENCE 1 The Secret to a Great API Developer Experience Today, organizations across all industries are recognizing the business and strategic opportunities
More informationUnifying Big Data Workloads in Apache Spark
Unifying Big Data Workloads in Apache Spark Hossein Falaki @mhfalaki Outline What s Apache Spark Why Unification Evolution of Unification Apache Spark + Databricks Q & A What s Apache Spark What is Apache
More informationIntroduction to Web Services & SOA
References: Web Services, A Technical Introduction, Deitel & Deitel Building Scalable and High Performance Java Web Applications, Barish Web Service Definition The term "Web Services" can be confusing.
More informationFull Stack Developer with Java
Full Stack Developer with Java Full Stack Developer (Java) MVC, Databases and ORMs, API Backend Frontend Fundamentals - HTML, CSS, JS Unit Testing Advanced Full Stack Developer (Java) UML, Distributed
More informationSimple AngularJS thanks to Best Practices
Simple AngularJS thanks to Best Practices Learn AngularJS the easy way Level 100-300 What s this session about? 1. AngularJS can be easy when you understand basic concepts and best practices 2. But it
More informationYour Voice is Your Passport: Implementing Voice-driven Applications with Amazon Alexa
Your Voice is Your Passport: Implementing Voice-driven Applications with Amazon Alexa Stephen Lippens Solutions Architect slippens@microstrategy.com This presentation may include statements that constitute
More informationExtending the WordPress REST API. ithemes timothybjacobs.com #WCLVPA
Extending the WordPress REST API Slides: timothybjacobs.com/wclvpa17 History REST API framework introduced in WordPress 4.4 Plugin authors can begin to use the REST API. Content endpoints available in
More informationHelp Me! A Consumer Product Assistance Application
Grand Valley State University ScholarWorks@GVSU Technical Library School of Computing and Information Systems 2016 Help Me! A Consumer Product Assistance Application Ryan Kingsley Grand Valley State University
More informationUr/Web: A Simple Model for Programming the Web. Adam Chlipala MIT CSAIL POPL 2015 January 15, 2015
Ur/Web: A Simple Model for Programming the Web Adam Chlipala MIT CSAIL POPL 2015 January 15, 2015 Ur / Web Ur A new general-purpose typed functional language λ Web Tools for implementing modern three-tier
More informationWeb APIs that Developers Love. Kai
1 Web APIs that Developers Love Kai Spichale @kspichale 2 Communication among developers Decoupling from implementation Client API Implementation Operations with input and output Integration & reuse 3
More informationWriting REST APIs with OpenAPI and Swagger Ada
Writing REST APIs with OpenAPI and Swagger Ada Stéphane Carrez FOSDEM 2018 OpenAPI and Swagger Ada Introduction to OpenAPI and Swagger Writing a REST Ada client Writing a REST Ada server Handling security
More informationThink like an Elm developer
Think like an Elm developer Piper Niehaus Denver, CO, USA Backpacker / skier Nonprofit board chair Software Engineer at Pivotal Pivotal Tracker team Elm in Production since 2016 Internal Products and Services
More informationUnderstanding and Documenting Web APIs
Understanding and Documenting Web APIs tekom 2017, Stuttgart, Germany Oct 24-26 2017 Anne Tarnoruder SAP Labs Israel Ltd. anne.tarnoruder@sap.com https://www.linkedin.com/in/annetarnoruder/ Part 1. Understanding
More informationSAMPLE CHAPTER. Event-driven serverless applications. Danilo Poccia. FOREWORD BY James Governor MANNING
SAMPLE CHAPTER Event-driven serverless applications Danilo Poccia FOREWORD BY James Governor MANNING in Action by Danilo Poccia Chapter 1 Copyright 2017 Manning Publications brief contents PART 1 FIRST
More informationOpenECOMP SDC Developer Guide
OpenECOMP SDC Developer Guide Copyright 2017 AT&T Intellectual Property. All rights reserved. Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation
More informationContents in Detail. Foreword by Xavier Noria
Contents in Detail Foreword by Xavier Noria Acknowledgments xv xvii Introduction xix Who This Book Is For................................................ xx Overview...xx Installation.... xxi Ruby, Rails,
More informationRPC VS. REST VS. GraphQL
RPC VS. REST VS. GraphQL An API throwdown February 27, 2018 WHICH API STYLE IS BEST? { THE DEBATE IS STILL RAGING DEBATES MISS THE POINT API DESIGN EVOLUTION? NOT QUITE. REST RPC Coupling Chattiness Client
More informationWeb Application Expectations
Effective Ruby on Rails Development Using CodeGear s Ruby IDE Shelby Sanders Principal Engineer CodeGear Copyright 2007 CodeGear. All Rights Reserved. 2007/6/14 Web Application Expectations Dynamic Static
More informationWe used to talk about whether or not we were in the year of mobile but we are actually in the Age of Mobile.
We used to talk about whether or not we were in the year of mobile but we are actually in the Age of Mobile. where we ve come from... 2000-2012: 12x total internet usage vs mobile data usage Source 2013
More informationWhat is a compiler? Xiaokang Qiu Purdue University. August 21, 2017 ECE 573
What is a compiler? Xiaokang Qiu Purdue University ECE 573 August 21, 2017 What is a compiler? What is a compiler? Traditionally: Program that analyzes and translates from a high level language (e.g.,
More informationBaasBox. Open Source Backend as a Service. Otto Hylli
BaasBox Open Source Backend as a Service Otto Hylli Overview (1/2) Developed by BaasBox an Italian startup company Project was declared started on 1st of July 2012 on the BaasBox blog Open source under
More informationSTARCOUNTER. Technical Overview
STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation
More information5 System architecture
5 System architecture This chapter provides an overview of the system architecture. The first section presents a superficial explanation of the entire systems architecture. In section two, architectural
More information