Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OSCON 2012: ql.io and Node.js
Search
Jonathan LeBlanc
July 20, 2012
Technology
1
580
OSCON 2012: ql.io and Node.js
OSCON 2012 (July - Portland, OR) presentation by Subbu Allamaraju and myself on ql.io and Node.js
Jonathan LeBlanc
July 20, 2012
Tweet
Share
More Decks by Jonathan LeBlanc
See All by Jonathan LeBlanc
Architecting Developer Relations for a New Development Platform
jcleblanc
0
37
Best practices for application development with Box
jcleblanc
0
6
BoxWorks Developer Training
jcleblanc
0
110
Building Mobile First Experiences on Box Platform
jcleblanc
0
56
Introduction to Box APIs
jcleblanc
1
71
Box Platform Developer Workshop
jcleblanc
2
280
JavaScript App Security: Auth and Identity on the Client
jcleblanc
0
74
Improving Developer Onboarding Through Intelligent Data Insights
jcleblanc
0
72
Better Data with Machine Learning and Serverless
jcleblanc
0
170
Other Decks in Technology
See All in Technology
モダンデータスタック (MDS) の話とデータ分析が起こすビジネス変革
sutotakeshi
0
470
ログ管理の新たな可能性?CloudWatchの新機能をご紹介
ikumi_ono
1
660
Lessons from Migrating to OpenSearch: Shard Design, Log Ingestion, and UI Decisions
sansantech
PRO
1
120
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.3k
AWS CLIの新しい認証情報設定方法aws loginコマンドの実態
wkm2
6
710
AWS Security Agentの紹介/introducing-aws-security-agent
tomoki10
0
160
ブロックテーマとこれからの WordPress サイト制作 / Toyama WordPress Meetup Vol.81
torounit
0
550
Playwright x GitHub Actionsで実現する「レビューしやすい」E2Eテストレポート
kinosuke01
0
570
年間40件以上の登壇を続けて見えた「本当の発信力」/ 20251213 Masaki Okuda
shift_evolve
PRO
1
120
初めてのDatabricks AI/BI Genie
taka_aki
0
100
大企業でもできる!ボトムアップで拡大させるプラットフォームの作り方
findy_eventslides
1
720
Karate+Database RiderによるAPI自動テスト導入工数をCline+GitLab MCPを使って2割削減を目指す! / 20251206 Kazuki Takahashi
shift_evolve
PRO
1
700
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
100
Code Reviewing Like a Champion
maltzj
527
40k
Site-Speed That Sticks
csswizardry
13
1k
Building Applications with DynamoDB
mza
96
6.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Code Review Best Practice
trishagee
74
19k
Balancing Empowerment & Direction
lara
5
800
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Fireside Chat
paigeccino
41
3.7k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Transcript
node.js and ql.io Build Your Own HTTP APIs for Agility
and Scale OSCON July 20, 2012 1
Subbu Allamaraju @sallamar github.com/s3u 2
Jon LeBlanc @jcleblanc github.com/jcleblanc 3
How to consume HTTP APIs cheaply and efficiently 4
5 curl -‐X <HTTP method> <URI>
Real code (randomized)
7
8
9
10
11
12
13
14
Find things from A For each thing, find details from
B For each thing, find more details from C Merge results Use case: 15
Find products Find dominant categories of products Look up category
info Merge categories with products Use case: 16
Get stuff from A If A is down, try from
B Annotate stuff with other stuff from C Ignore some things from the stuff Join all Use case: 17
Producers Client [Really important client] Why don't you give
me an API optimized for my use cases? Server [Really important producer] Thanks. Get a number and stand in the line! 18
Producers Client Server [Really important producer] Thanks. Get a
number and stand in the line! Who gets to decide the right thing? 19 [Really important client] Why don't you give me an API optimized for my use cases?
Build Your Own Optimized APIs 20
21 https://github.com/ql-io/ql.io Platform Engineering
A domain specific language for HTTP client programming 22
cut down lines of code reduce no of requests save
bandwidth 23
24
http://ql.io/console 25
26 Server Web Node.js ql.io Installation Modes
27 curl http://<host>/q?s=query
As a Standalone Server Node Host ql.io Data (internal )
Data (externa l)
# As a node.js module npm install ql.io-‐engine
// Use ql.io from node.js var Engine =
require('ql.io-‐engine'); var engine = new Engine({ //OPTIONS }); var script = '…'; engine.execute(script, function(emitter){ emitter.on("end", function(err, res){ … }); });
Language: Defining a Data Source Include in .ql file
Include in Request
Example: Mustache Templates
Example: jQuery for Cross Domain Reqs
Let’s Do It!
1. Interop via HTTP 2. SQL inspired 3. Implicit orchestration
4. Failure modes 5. Consumer oriented 35
36 code https://github.com/ql-io/ql.io docs/demos http://ql.io https://github.com/jcleblanc/api-masher blog http://ql-io.github.com