Professional Documents
Culture Documents
QConNY2016 EvanBroder TheArchitectureThatHelpsStripeMoveFaster
QConNY2016 EvanBroder TheArchitectureThatHelpsStripeMoveFaster
Evan Broder
@ebroder
Evolving the Stripe API
def render_card(stripe_user, card)
data = {}
[...]
if stripe_user.gating(:show_card_brand_as_type)
data[:type] = card.brand
else
data[:brand] = card.brand
end
[...]
return data
end
Output Adapter
Input Adapter
Modern Request
Handling
def render_card(card)
data = {}
[...]
data[:brand] = card.brand
amount=400¤cy=usd&source[number]=4242424242424242&source
[exp_month]=6&source[exp_year]=2017&source[cvc]
=314&description=Charge%20for%20test%40example.com
source[number]=4242424242424242
[source]number=4242424242424242
source[number]=4242424242424242
[source][number]=4242424242424242
[source]number=4242424242424242
source[number]=4242424242424242
]][[[][]]]source]]]]]number]]=4242424242424242
[source][number]=4242424242424242
[source]number=4242424242424242
source[number]=4242424242424242
GET /v1/plans/10USD%2FMONTH HTTP/1.1
VPN
Internet
Database server Database
server server
Frontend
Frontend
server
server
Primary
Secondaries
Application
Primary
Secondaries
Application
Primary
Secondaries
App
server
VPN
Internet
server
App
server
VPN
Internet
server
Load
Balancer
App
server
VPN
Internet
server
App
server
App App
server server
References