Client infrastructure

Client Infrastructure

  • Team Introduction
  • Mandate
  • Goals

MandaTE

  • GraphQL Server and Client Library
  • RAML Linters and Code Generation
  • BFF Services
  • Server Side React JS rendering service
  • Image processing

Provide platforms and tools to improve client development efficiency and application performance

Goals

  • Quickly Deploy GraphQL Beta
  • Elevate NodeJS to a first class citizen
  • Maintain RAML until completely deprecated
  • Continue to provide API design recommendations

GraphQL

  • Product / front end centric
  • Client-specified queries
  • Backwards Compatible
  • Strongly-typed
  • Introspective

Example

{
    user {
        name
    }
}
{
    "user": {
        "name": "Nick"
    }
}

Progress

{
    user {
        name
        profilePicture {
            width
            height
            url
        }
    }
}
{
    "user": {
        "name": "Nick",
        "profilePicture": {
            "width": 50,
            "height": 50,
            "url": "https://cdn/50.jpg"
        }
    }
}

Graphql Demo

Architecture

GraphQL

MicroServices

Native

Mobile W

Desktop

Initial Deployment

GraphQL

Finagle Services

api.ck.com

Rest Services

Stage 2 Deployment

GraphQL

Finagle Services

api.ck.com

Rest Services

Next Steps

  • Target Dates
  • CKVM
  • Production

Target Dates

  • GraphQL in CKVM - Aug 15th
  • GraphQL in Production - Sept 30th

CKVM Next Steps

  • Key Contacts
  • Immediate Concerns

Production Next Steps

  • Key Contacts
  • Immediate Concerns

CLIFF

By Nick Nance

CLIFF

Architecture

  • 960