Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BrikL - A GraphQL Native

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

BrikL - A GraphQL Native

BrikL's GraphQL journey started in 2016 with constantly changing business requirements towards finding the product market fit. The talk will share some insights on the journey and lessons learnt of a startup using GraphQL to enable high development velocity and how BrikL is using GraphQL today.

Avatar for Tobias Meixner

Tobias Meixner

April 12, 2019

Other Decks in Technology

Transcript

  1. Tobias Meixner 3 ▪ Born in Berlin (born before it

    was cool) ▪ In Asia for over 6 years ▪ Based in Bangkok & Guangzhou ▪ Co-Founder & CTO @ ▪ @MeixnerTobias
  2. 5

  3. What is a startup? 7 ▪ Focus on growth ▪

    Solve a problem ▪ More questions than answers ▪ Find product/market fit
  4. 9 Source: https://www.leadingagile.com/2017/11/planning-technical-debt/ Leverage ▪ Incur intentionally for a purpose

    ▪ Useful when cost-effective Waste ▪ Sloppy coding ▪ Refactoring has no immediate benefit Technical Debt
  5. Dev in Startup... 10 ▪ Move fast, break things? ▪

    Delete more than you add? ▪ Crave for stability and a constant?
  6. About BrikL 13 ▪ 2D & 3D Design studio ▪

    E-commerce Platform for Custom-Made Products ▪ www.brikl.io
  7. Why GraphQL 14 ▪ Pure focus on Frontend development ▫

    MVP-style / UI-Driven development ▪ GraphQL Schema as major constant in our development ▪ GraphQL Schema as discussion base between project shareholders
  8. MVP (2016) 15 ▪ React ▪ Redux ▪ graphql-js ▪

    AWS Lambda (NodeJS) ▪ Amazon DynamoDB Based on: serverless/serverless-graphql
  9. v1 (2017) 16 ▪ React ▪ Redux Apollo Client ▪

    graphql-js Apollo Server ▪ AWS Lambda (NodeJS) ▪ Amazon DynamoDB
  10. 2018 - Today 18 ▪ React ▪ Apollo Client ▪

    Apollo Server ▪ AWS Lambda (NodeJS) ▪ Amazon DynamoDB ▪ + Gatsby ▪ + Apollo Engine ▪ + Elasticsearch ▪ + Tooling: ▫ Serverless framework ▫ Cypress ▫ Sentry ▫ Netlify + CircleCI ▫ AWS stuff
  11. Architecture 19 ▪ Serverless from Day 1 ▪ Managed Services

    where possible ▪ GraphQL as thin layer ▪ DynamoDB to ▫ Store “State” ▫ Emit events to streams ▫ Similar to Hasura 3factor app
  12. Architecture 20 CDN Engine Server DynamoDB S3 Glue Elasticsearch ETL

    Stream Cognito JWT Authn/z X-Ray Logs Client Gatsby API Real time
  13. Gatsby 21 ▪ Source data from GraphQL ▪ Generate storefront

    pages ▪ Source data based on selected store integrations ▫ Instagram, … ▪ Future > Content Mesh
  14. Apollo Client 22 ▪ Query, Mutation components ▪ In-Memory-Cache ▪

    Link Context > JWT ▪ Error link > Sentry ▪ HTTP Link > CDN vs POST ▪ SSR in Gatsby
  15. Apollo Server 23 ▪ Apollo Server Lambda ▪ Apollo Engine

    ▪ Context > User, Config ▪ Cache Control > CDN ▪ graphql-shield > Authz ▪ graphql-tools > make Schema
  16. Schema-first 25 ▪ Great fit for getting started ▪ High

    velocity for startups ▪ Schema directives to rescue ▫ Schema = ORM ▫ SchemaDirectiveVisitor
  17. What’s next? 29 ▪ Typescript / Code-first? ▪ State Management

    ▪ publish DynamoDB Datasource library ▪ Subscriptions...