SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
saboyutaka@株式会社EBILAB
Servelss Meetup #19
2021/03/31
サーバーサイドから見るGraphQL
GraphQLを利用したアーキテクチャ設計
• 有限会社ゑびや / 株式会社 EBILAB
• テックリード/アーキテクト @EBILAB
• 沖縄移住6年目(出身は福岡)
• Azure/Servelss/Apollo/GraphQL/Rails/Laravel/
Python/TypeScript/React/Vue/Next.js/Nuxt.js
• 大卒 -> SIer -> Web系(ピクシブ) -> フリーランス
-> スタートアップ(EBILAB)
• 進化的アーキテクチャがすき(立ち上げから軌道に
乗るまでの0-5年)
自己紹介
@saboyutaka
立花 豊 (さぼ)
たちばな ゆたか
GraphQL and me
この1年書いたQiita記事
• GraphQLの特徴を分解する API インターフ
ェース・Universal BFF・API Gateway
• GraphQLはサーバーサイド実装のベストプラ
クティスとなるか
• GraphQLの全体像とWebApp開発のこれから
今回はなす事
• そもそもGraphQLはなんで作られたのか、何を解決しようとしているのか
• その後生まれて来ているユースケース
• GraphQL導入の検討
GraphQLとは
いつものまえおき
• Facebook発のWebAPI仕様, 2015年にOSS化
• GraphQL自体はspec(仕様)
• GraphQL over HTTP が主流 (HTTP/1.1)
• アプリケーション層のプロトコル(not トランスポート層)
• GraphQL Clientと GraphQL Server間のプロトコル
• Client側も含めてデザインされているWebAPIの仕様
通信手法はgRPCに
似てる
RESTとの違い
GraphQL(の前身)が作られた時の問題意識
• モバイルクライアントの急増(iPhone 4 )
• ネットワークトラフィックの増大
• アプリのWebViewからネイティブ化
背景
問題意識
• 様々なユースケース, 多種クライアントに耐えうるAPI設計にしなければいけない
• モバイルクライアントのリソース最小化(CPU, メモリ, ネットワーク, バッテリー)したい
• 頻繁に起こるクラサバ間での状態の操作と同期を楽にしたい
2010 2012年頃のFacebook
RESTでは実現が
むずかしい
みなさんが
Twitterを始めた頃
GraphQL 最低限の知識
• Query, 読み込み
• Mutation, 書き込み
• Subscription, Websocket
操作
WebAPI
• HTTPでリクエスト出来る
• JSONが返ってくる
GraphQLが解決する課題
• APIインターフェース
• クライアントリソースの低減
• クライアント-サーバー間の状態同期
API インター
フェース
WebAPI(RESTish)の問題意識
クライアント側の問題意識
• 実装コスト
• 増大するエンドポイント
• エンドポイント毎の仕様
• クライアント任せなサーバー状態の管理
• 使用リソース
• 増大するリクエスト数
• 利用されない受信データ
クライアント側
APIインターフェース
WebAPI(RESTish)の問題意識
サーバーサイドの問題意識
• ユースケース毎のAPIを煩わしさ
• クライアント都合でサーバーサイド実装を変える煩わしさ
• APIドキュメントの煩わしさ
• コミュニケーションコスト増
サーバーサイド側のAPIインターフェース
傾向として
(本当はしてあげたい、本
当はしてあげたいけど…フロ
ントエンド都合で度々, 実装
に手を入れるのつらい)
😣
サーバーサイド都合なAPIになりがち
APIインターフェース
WebAPIの設計
ユーザーブルでセキュア、効率的で進化可能なWeb APIをデザインする際に知っておくべきこと
https://amzn.to/3u3tj76
APIインターフェース
WebAPIの設計
ユーザーブルでセキュア、効率的で進化可能なWeb APIをデザインする際に知っておくべきこと
https://amzn.to/3u3tj76
APIをコンシューマにとって理解しやすく使
いやすいものにするには、コンシューマの
視点に立って設計しなければならない。
APIインターフェース
WebAPIの設計
ユーザーブルでセキュア、効率的で進化可能なWeb APIをデザインする際に知っておくべきこと
https://amzn.to/3u3tj76
APIをコンシューマにとって理解しやすく使
いやすいものにするには、コンシューマの
視点に立って設計しなければならない。
🤔
わかる!しかし!
APIインターフェース
WebAPI(RESTish)の問題意識
現実問題として
• ドメインロジックを実装するときにAPIのユースケースを同時に考えるのは大変
• ドメインロジックのコンテキストは可能な限り狭いほうが良い
• 負荷によってはロジックを分離したい
• 将来に渡って利用可能なユースケースを実現するのは難しい
サーバーサイド側の実装都合
傾向として
APIは細分化され増えていく → クライアントにとっては使いづらくなる…
エンドポイントが増え
る事はサーバーサイドにとって
も嬉しいことではない…
APIインターフェース
WebAPI(RESTish)の問題意識
現実問題として
• ドメインロジックを実装するときにAPIのユースケースを同時に考えるのは大変
• ドメインロジックのコンテキストは可能な限り狭いほうが良い
• 負荷によってはロジックを分離したい
• 将来に渡って利用可能なユースケースを実現するのは難しい
サーバーサイド側の実装都合
傾向として
APIは細分化され増えていく → クライアントにとっては使いづらくなる…
エンドポイントが増え
る事はサーバーサイドにとって
も嬉しいことではない…
🤓
Presentation-Domain
Separation しましょう
APIインターフェース
APIのPresentation-Domain Separation
BFFとしてのGraphQL
API クライアント API サーバー
GraphQL
クライアント都合のAPI ドメイン都合のAPI
クライアントにとってはBFF サーバーにとってはAPI Aggregator
APIインターフェース
GraphQLを入れると
クライアント
GraphQLで解決するAPIインターフェースの問題
サーバーサイド
☺
• 単一のエンドポイント、単一の仕様
• 利用可能な全ての状態がわかる
• ユースケース毎に自分でクエリを作成する
• ドメインAPIから微細なユースケースの対応を減らせる
• クライアント都合の変更が減る, API仕様を伝えるコミュニケーションが減る
• Schemaがドキュメントになるためドキュメント作業がなくなる
• サーバーサイド都合で自由にAPIを作成・統合・撤廃出来る
APIインターフェース
情報アーキテクチャ的な観点
• 利用可能なデータが発見しやすい・利用しやすい
• クライアントに提供しているデータが一元化される
• ユーザーにとって見せるか見せるべきではないかの監査を1箇所で行う事で監
査可しやすい
RESTishなAPIでは全
てのエンドポイントで同一レベ
ルの監査が必要だった
APIインターフェース
クライアントリソースの軽減
クライアントの問題意識
問題意識
• ネットワークやバッテリーの使用を可能な限り抑えたい
• 劣悪な環境にあるクライアントでもサービスを利用してもらいたい
• ユーザー規模が多くなると通信コストだけで莫大なコストが掛かる
特にモバイルクライアント
課題
• アプリケーションから発生するリクエストを可能な限り減らす
• 利用されない無駄なデータを減らす
クライアントリソースの軽減
GraphQLのアプローチ
アプローチ
クライアントリソースの問題
解決方法
• 1リクエストで取得出来るデータを増やす
• レスポンスデータの有効率を上げる
• クライアントに必要なデータを宣言させる(宣言的データフェッチ)
• 利用可能なデータは全て先に知らせる(Schema Introspection)
Overfetch, Underfetch問題
クライアントリソースの軽減
GraphQLのAPIデザイン
Query
結果
☺
• 1リクエストで多くの情報を取得出来るように設計されている
• 1リクエストに複数のクエリを含めることが出来る(Batch Query)
• 1リクエストで段階的にレスポンスを受け取るRFCが進行中(@defer, @stream)
• リクエスト数を減らしながら利用したいデータを効率よく取得出来るようになった
• サービス全体で見ると無駄なデータ通信が減らす事が出来た
クライアントリソースの軽減
クライアント-サーバーの状態同期
クラサバの状態同期の問題意識
前提
• RESTishなAPIはクライアントとの状態同期に関しては特に指定がない
• クライアント-サーバー間の状態同期クライアント任せ
• 特にネイティブクライアント, SPAアプリはクラサバ状態同期の実装が大変
• フロントエンドでFlux系の状態管理ツールが出てきたりで頑張ってきた
RESTだと大変
サービスが大きくなると
状態管理のコードが肥大化し管理不能になるとフロントエンドの開発効率が急激に落ちる
状態とは,
時間経過に伴い変化するデータ
Reduxで見る状態管理
• 状態を持つ信頼できる唯一リソース
(Single Source of Truth)
• Immutable State
• 操作は必ずActionから
• (これまでの用途は主にサーバーから
取得したデータのキャッシュ管理だ
った?)
Flux系の状態管理手法
ユースケース
出典: Redux Essentials, Part 1: Redux Overview and Concepts
• 状態管理の考え方はFlux系と同じ
• クライアント-サーバー間の状態同期
に特化 (Server State)
• 操作はQuery, Mutationで行う
• GraphQL Clientが状態をキャッシ
ュとして保持している
GraphQL Clientによる状態管理
ユースケース
出典: Redux Essentials, Part 1: Redux Overview and Concepts
Query
Mutation
GraphQLはクライアントも含めてデザインされている
GraphQL Clientの実装
• GraphQLクライアントが状態を管理している
• 主要なGraphQLクライアントは正規化されたキャッシュを自動で行う機構を持つ
(Normalized Cache)
• 異なる経路から取得されたデータでも同一のkey, デフォルトではidと__typename, であれば
キャッシュが更新される
• データの更新時(Mutation)の場合も、同一のkeyを持つオブジェクトを返す事で
変更操作を伴う場合、
MutationもGraphQLで実装する
必要がある
結果
状態管理の多くの作業をGraphQLクライアントが自動化してくれる
ユースケース
• マルチクライアントのための
Universal BFF
• マルチバックエンドのためのAPI
Aggregator
• クライアントを追加しやすい
• バックエンドを追加しやすい
マルチクライアント
ユースケース
マルチクライアント
• 異種クライアントを追加しやすい
• ユーザー毎のUI(新レイアウト, 玄人向け, 高齢者向け)を作りやすい
• 同じサービスでも異なったUIを複数展開しやすい
• GraphQL APIを提供するところまでがサービス提供、UIは自分で作ってね
ユースケース
GraphQLを提供することで考えられるアイディア
アイディア
発想💡
APIがユースケースを持たないからこそ様々なユースケースを考えられる
API層のAnti-Corruption Layerとして導入する
大規模アーキテクチャ変更のお供に
• かつて(!)はUIの大きな改修(リニューアル)が入る場合、同時にバックエンド
を全面改修することがあった (よく見る)
• 全面リニューアルしましょう!
• しばしばバックエンドの改修も同時に行われる…
• プロジェクトの超長期化、実現難易度のスパイク、止まる新規機能リリース、焦るビジネスサイド、プレッシャー
をかけられるエンジニア陣、リリースしないとわからないバグ、乖離するFeature Branch、出来ない動作検証、
疲弊する現場…🤮
ユースケース
歴史 ビッグバンリニューアル
https://amzn.to/3cE1XPc
API層のAnti-Corruption Layerとして導入する
大規模アーキテクチャ変更のお供に
ユースケース
https://amzn.to/3cE1XPc
API層のAnti-Corruption Layerとして導入する
大規模アーキテクチャ変更のお供に
ユースケース
• インクリメンタルな変更
• 適度な結合
• 適応度関数
進化的アーキテクチャ
• 最も簡単なことを最初に
• 最も価値のあるものを最初に
どこから始めるか
API層のAnti-Corruption Layerとして導入する
大規模アーキテクチャ変更のお供に
• 往々にして機能要件(デザイン, UI, 新機能)をリニューアルと言っている
ユースケース
ビジネス
開発
• 実装のしやすさ、メンテのしやすさを気にしている
達成すべきこと
• 機能要件を最速で実現しながらアーキテクチャも段階的に変更する
リニューアルしたい
API層のAnti-Corruption Layerとして導入する
大規模アーキテクチャ変更のお供に
ユースケース
1. レガシーな単一のバックエンド
2. API層としてGraphQLを導入,
次いでクライアントを実装
可能であればコン
ポーネント単位、ページ
単位で順次リリース
✨
✨
✨
4. 必要に応じて(!), 順次新バックエンドに切り替え
✨
3. 完全にフロントが切り替わったタイミングで


旧フロントを廃止
3, 4は平行作業可能
• GraphQLをAPI層として入れる事でフロントとバックの結合を分離出来る
• それぞれ異なったタイミングでのリリースを可能にする
• まずは機能要件から優先、バックエンドの整備や切り替えは後から
• 特に中規模になってきたアプリケーションの改修時に重宝する
ユースケース
API層のAnti-Corruption Layerとして導入する
大規模アーキテクチャ変更のお供に
CQRS
読み込み系と書き込み系のAPIを分けるデザインパターン
• そもそもGraphQLはQuery, MutationとCQRSでデザインされている
• エンタープライズなデータ仮想化基盤と相性が良い
• Denodo(データ仮想化技術)がGraphQL APIを対応してきている
• 非同期リクエスト-レスポンスパターンの実装例
• Shopify BulkOperation(従来のstatusを返すURLを返すパターン)
• 3 Factor App(Subscriptionでサーバープッシュで返すパターン)
ユースケース
Subscriptionで状態をサーバープッシュで受け取る
• Clubhouseのようなアプリを作りや
すい
• ユーザーのログイン状態, 入室して
いるRoom, 最終ログイン時刻, チャ
ット, リアクション
• ユーザー自身の操作よりもサーバー
側での状態変更が多い場合に有用
• Firestoreを使うようなユースケース
Realtime API with Subscription
Clubhouse
ユースケース
巨人の肩に乗る
イノベーションが起きている技術を率先して使う
• 活発に議論されている場所は課題への解決策が出てくる可能性が高い
• 後発の技術はすでにある技術の課題を解決している可能性が高い
活発に議論されている場所
• フロントエンド: Web基準, React.js/Vue.js, SPA, etc…
• GraphQL
• クラウド, Serverless
EBILABの事例
GraphQLの導入するタイミング
フロントエンド視点
• クラサバ間での状態同期が必要かどうか
• 特にクライアントからの状態更新(Mutation)がある
• モバイルクライアントで利用されるかどうか
• 複数種類のクライアントがある, または作る予定がある
• エンドポイントが多すぎて開発体験が悪い
GraphQLの導入するタイミング
サーバーサイド視点
• APIデザイン都合
• クライアントのユースケースによるAPI変更が多い
• Microservicesを採用している
• (API ドキュメントを書きたくない)
• 大規模なアーキテクチャ変更が必要
GraphQLの導入するタイミング
プロダクトの規模
• 見てきたように最初期から中期、エンタープライズ規模までどの規模でも利用可
能
• 最初期はフロントエンドの状態管理都合が多い
• 中期はアーキテクチャ変更のお供に
• エンタープライズ規模ではCQRS, Microservicesのエンドポイントとして
• 段階的な導入が望ましい
• TwitterやAirbnb, GitHubでも全体の数%から適用中
GraphQLの導入するタイミング
GraphQLに向かない事
• WebAPIであること, HTTPの制約を受ける
• 巨大なデータ転送には向いてない
• オブジェクト型の構造データが向いている
• 非構造型データ、テーブル型のデータは向いてない
GraphQLの導入するタイミング

Weitere ähnliche Inhalte

Was ist angesagt?

Gr8Conf 2016 - GORM Inside and Out
Gr8Conf 2016 - GORM Inside and OutGr8Conf 2016 - GORM Inside and Out
Gr8Conf 2016 - GORM Inside and Outgraemerocher
 
Ruby and Distributed Storage Systems
Ruby and Distributed Storage SystemsRuby and Distributed Storage Systems
Ruby and Distributed Storage SystemsSATOSHI TAGOMORI
 
REST API に疲れたあなたへ贈る GraphQL 入門
REST API に疲れたあなたへ贈る GraphQL 入門REST API に疲れたあなたへ贈る GraphQL 入門
REST API に疲れたあなたへ贈る GraphQL 入門Keisuke Tsukagoshi
 
Apache Kafkaとグラフデータベースによる成長するネットワークグラフを分析・可視化する基盤
Apache Kafkaとグラフデータベースによる成長するネットワークグラフを分析・可視化する基盤Apache Kafkaとグラフデータベースによる成長するネットワークグラフを分析・可視化する基盤
Apache Kafkaとグラフデータベースによる成長するネットワークグラフを分析・可視化する基盤Yoshiyasu SAEKI
 
Gr8Conf 2016 - What's new in Grails 3
Gr8Conf 2016 - What's new in Grails 3Gr8Conf 2016 - What's new in Grails 3
Gr8Conf 2016 - What's new in Grails 3graemerocher
 
05 integrate redis
05 integrate redis05 integrate redis
05 integrate redisErhwen Kuo
 
Introduction to Graph QL
Introduction to Graph QLIntroduction to Graph QL
Introduction to Graph QLDeepak More
 
Introduction to CosmosDB - Azure Bootcamp 2018
Introduction to CosmosDB - Azure Bootcamp 2018Introduction to CosmosDB - Azure Bootcamp 2018
Introduction to CosmosDB - Azure Bootcamp 2018Josh Carlisle
 
Spark Streamingによるリアルタイムユーザ属性推定
Spark Streamingによるリアルタイムユーザ属性推定Spark Streamingによるリアルタイムユーザ属性推定
Spark Streamingによるリアルタイムユーザ属性推定Yoshiyasu SAEKI
 
The GraphQL Ecosystem in 2018
The GraphQL Ecosystem in 2018The GraphQL Ecosystem in 2018
The GraphQL Ecosystem in 2018Nikolas Burk
 
Akka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in PracticeAkka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in PracticeRoland Kuhn
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Claus Ibsen
 
02 integrate highchart
02 integrate highchart02 integrate highchart
02 integrate highchartErhwen Kuo
 
Introduction to Grails 2013
Introduction to Grails 2013Introduction to Grails 2013
Introduction to Grails 2013Gavin Hogan
 
Fastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + SwaggerFastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + SwaggerTony Tam
 
データの民主化のために StackStorm を活用した事例
データの民主化のために StackStorm を活用した事例データの民主化のために StackStorm を活用した事例
データの民主化のために StackStorm を活用した事例Yoshiyasu SAEKI
 
Elasitcsearch + Logstash + Kibana 日誌監控
Elasitcsearch + Logstash + Kibana 日誌監控Elasitcsearch + Logstash + Kibana 日誌監控
Elasitcsearch + Logstash + Kibana 日誌監控Jui An Huang (黃瑞安)
 
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...European Collaboration Summit
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaGuido Schmutz
 

Was ist angesagt? (20)

Gr8Conf 2016 - GORM Inside and Out
Gr8Conf 2016 - GORM Inside and OutGr8Conf 2016 - GORM Inside and Out
Gr8Conf 2016 - GORM Inside and Out
 
Ruby and Distributed Storage Systems
Ruby and Distributed Storage SystemsRuby and Distributed Storage Systems
Ruby and Distributed Storage Systems
 
SOA on Rails
SOA on RailsSOA on Rails
SOA on Rails
 
REST API に疲れたあなたへ贈る GraphQL 入門
REST API に疲れたあなたへ贈る GraphQL 入門REST API に疲れたあなたへ贈る GraphQL 入門
REST API に疲れたあなたへ贈る GraphQL 入門
 
Apache Kafkaとグラフデータベースによる成長するネットワークグラフを分析・可視化する基盤
Apache Kafkaとグラフデータベースによる成長するネットワークグラフを分析・可視化する基盤Apache Kafkaとグラフデータベースによる成長するネットワークグラフを分析・可視化する基盤
Apache Kafkaとグラフデータベースによる成長するネットワークグラフを分析・可視化する基盤
 
Gr8Conf 2016 - What's new in Grails 3
Gr8Conf 2016 - What's new in Grails 3Gr8Conf 2016 - What's new in Grails 3
Gr8Conf 2016 - What's new in Grails 3
 
05 integrate redis
05 integrate redis05 integrate redis
05 integrate redis
 
Introduction to Graph QL
Introduction to Graph QLIntroduction to Graph QL
Introduction to Graph QL
 
Introduction to CosmosDB - Azure Bootcamp 2018
Introduction to CosmosDB - Azure Bootcamp 2018Introduction to CosmosDB - Azure Bootcamp 2018
Introduction to CosmosDB - Azure Bootcamp 2018
 
Spark Streamingによるリアルタイムユーザ属性推定
Spark Streamingによるリアルタイムユーザ属性推定Spark Streamingによるリアルタイムユーザ属性推定
Spark Streamingによるリアルタイムユーザ属性推定
 
The GraphQL Ecosystem in 2018
The GraphQL Ecosystem in 2018The GraphQL Ecosystem in 2018
The GraphQL Ecosystem in 2018
 
Akka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in PracticeAkka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in Practice
 
Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...Best Practices for Middleware and Integration Architecture Modernization with...
Best Practices for Middleware and Integration Architecture Modernization with...
 
02 integrate highchart
02 integrate highchart02 integrate highchart
02 integrate highchart
 
Introduction to Grails 2013
Introduction to Grails 2013Introduction to Grails 2013
Introduction to Grails 2013
 
Fastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + SwaggerFastest to Mobile with Scalatra + Swagger
Fastest to Mobile with Scalatra + Swagger
 
データの民主化のために StackStorm を活用した事例
データの民主化のために StackStorm を活用した事例データの民主化のために StackStorm を活用した事例
データの民主化のために StackStorm を活用した事例
 
Elasitcsearch + Logstash + Kibana 日誌監控
Elasitcsearch + Logstash + Kibana 日誌監控Elasitcsearch + Logstash + Kibana 日誌監控
Elasitcsearch + Logstash + Kibana 日誌監控
 
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...
ECS19 - Marco Rocca and Fabio Franzini - Need a custom logic in PowerApps? Us...
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
 

Ähnlich wie サーバーサイドから見るGraphQL Serverless Meetup #19

JSP-Servlet.ppt
JSP-Servlet.pptJSP-Servlet.ppt
JSP-Servlet.pptMouDhara1
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Reviewnetc2012
 
Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Markus Eisele
 
Streaming to a New Jakarta EE
Streaming to a New Jakarta EEStreaming to a New Jakarta EE
Streaming to a New Jakarta EEJ On The Beach
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EEMarkus Eisele
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018harvraja
 
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)VMware Tanzu
 
Azure serverless architectures
Azure serverless architecturesAzure serverless architectures
Azure serverless architecturesBenoit Le Pichon
 
Architectural peripherals of react by Vadym Zhiltsov
Architectural peripherals of react by Vadym ZhiltsovArchitectural peripherals of react by Vadym Zhiltsov
Architectural peripherals of react by Vadym ZhiltsovLohika_Odessa_TechTalks
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?Balajihope
 
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...MskDotNet Community
 
Ramarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_WebserviceRamarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_WebserviceRamarao Behara
 
Ramarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_WebserviceRamarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_WebserviceRamarao Behara
 
An evening with React Native
An evening with React NativeAn evening with React Native
An evening with React NativeMike Melusky
 
pranayJ
pranayJpranayJ
pranayJPray B
 
Java Full Stack course in hyderabad
Java Full Stack course in hyderabadJava Full Stack course in hyderabad
Java Full Stack course in hyderabadchekurthasruthivibhi
 
Summer internship report
Summer internship reportSummer internship report
Summer internship reportIpsit Pradhan
 

Ähnlich wie サーバーサイドから見るGraphQL Serverless Meetup #19 (20)

JSP-Servlet.ppt
JSP-Servlet.pptJSP-Servlet.ppt
JSP-Servlet.ppt
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
 
Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19
 
Streaming to a New Jakarta EE
Streaming to a New Jakarta EEStreaming to a New Jakarta EE
Streaming to a New Jakarta EE
 
Streaming to a new Jakarta EE
Streaming to a new Jakarta EEStreaming to a new Jakarta EE
Streaming to a new Jakarta EE
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018
 
Redux vs GraphQL
Redux vs GraphQLRedux vs GraphQL
Redux vs GraphQL
 
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
 
Azure serverless architectures
Azure serverless architecturesAzure serverless architectures
Azure serverless architectures
 
Architectural peripherals of react by Vadym Zhiltsov
Architectural peripherals of react by Vadym ZhiltsovArchitectural peripherals of react by Vadym Zhiltsov
Architectural peripherals of react by Vadym Zhiltsov
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?
 
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
 
ABHAY_SHUKLA
ABHAY_SHUKLAABHAY_SHUKLA
ABHAY_SHUKLA
 
Ramarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_WebserviceRamarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_Webservice
 
Ramarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_WebserviceRamarao_US_NewNumber_Promatrix_Webservice
Ramarao_US_NewNumber_Promatrix_Webservice
 
Fluxible
FluxibleFluxible
Fluxible
 
An evening with React Native
An evening with React NativeAn evening with React Native
An evening with React Native
 
pranayJ
pranayJpranayJ
pranayJ
 
Java Full Stack course in hyderabad
Java Full Stack course in hyderabadJava Full Stack course in hyderabad
Java Full Stack course in hyderabad
 
Summer internship report
Summer internship reportSummer internship report
Summer internship report
 

Mehr von Yutaka Tachibana

GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うかYutaka Tachibana
 
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQLグラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQLYutaka Tachibana
 
Playing capitalism game as engineer
Playing capitalism game as engineer Playing capitalism game as engineer
Playing capitalism game as engineer Yutaka Tachibana
 
Phpstormを使いこなす
Phpstormを使いこなすPhpstormを使いこなす
Phpstormを使いこなすYutaka Tachibana
 
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018Yutaka Tachibana
 
grpc-gateway を試してみた fukuoka.go#11
grpc-gateway を試してみた fukuoka.go#11grpc-gateway を試してみた fukuoka.go#11
grpc-gateway を試してみた fukuoka.go#11Yutaka Tachibana
 
ギークハウス沖縄rebuild with リノベスイッチ
ギークハウス沖縄rebuild with リノベスイッチギークハウス沖縄rebuild with リノベスイッチ
ギークハウス沖縄rebuild with リノベスイッチYutaka Tachibana
 
Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利Yutaka Tachibana
 
Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01Yutaka Tachibana
 

Mehr von Yutaka Tachibana (9)

GraphQLはどんな時に使うか
GraphQLはどんな時に使うかGraphQLはどんな時に使うか
GraphQLはどんな時に使うか
 
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQLグラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
グラフモデルとSoEとGraphQL データ指向アプリケーションデザインから見るGraphQL
 
Playing capitalism game as engineer
Playing capitalism game as engineer Playing capitalism game as engineer
Playing capitalism game as engineer
 
Phpstormを使いこなす
Phpstormを使いこなすPhpstormを使いこなす
Phpstormを使いこなす
 
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018Cloud native & cloud design patterns for  small teams - ハッカーズチャンプルー2018
Cloud native & cloud design patterns for small teams - ハッカーズチャンプルー2018
 
grpc-gateway を試してみた fukuoka.go#11
grpc-gateway を試してみた fukuoka.go#11grpc-gateway を試してみた fukuoka.go#11
grpc-gateway を試してみた fukuoka.go#11
 
ギークハウス沖縄rebuild with リノベスイッチ
ギークハウス沖縄rebuild with リノベスイッチギークハウス沖縄rebuild with リノベスイッチ
ギークハウス沖縄rebuild with リノベスイッチ
 
Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利Rubyの実装をRubiniusで便利
Rubyの実装をRubiniusで便利
 
Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01Ruby and I at 神奈川Ruby会議01
Ruby and I at 神奈川Ruby会議01
 

Kürzlich hochgeladen

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Kürzlich hochgeladen (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

サーバーサイドから見るGraphQL Serverless Meetup #19