Powering payments with Node.js

23

Transcript of Powering payments with Node.js

Page 1: Powering payments with Node.js
Page 2: Powering payments with Node.js

Powe ring Payme nts with N od e . j sT o m L o m a s & M i c h a e l W a i n

Page 3: Powering payments with Node.js

B ac k g round A tS k y B e tting & G aming

Page 4: Powering payments with Node.js
Page 5: Powering payments with Node.js

Headline Figures• Up to 100 transactions per second at peak

• Peaky traffic profiles

• Billions of £ per year in transaction value

• Over 1 million active customers

• Support for Cards, PayPal, Skrill & Neteller

• Now support for Apple Pay!

Page 6: Powering payments with Node.js
Page 7: Powering payments with Node.js

M ig ration to M ic ro S e r v ic e s

Page 8: Powering payments with Node.js

Historically Our Systems Were…• Largely monolithic applications provided by a third party

• Direct integrations with Payment Service Providers

• Little control and insight into the inner workings and business rules

• Hard to introduce new features and bound to release cycles

Page 9: Powering payments with Node.js
Page 10: Powering payments with Node.js

Our Roadmap

Page 11: Powering payments with Node.js

Reasons for choosing Node.js• Scalable

• Performant for our use case

• Low barrier to entry

• Proven technology

• Ability to rapidly develop new features

• Community support

• Growing feature set and platform innovations

• Green field opportunity

Page 12: Powering payments with Node.js

R ap id D e v e lop me nt

Page 13: Powering payments with Node.js

Rapid Development• External Modules

• Express JS

• IO Redis

• New Relic

• Standard Internal Modules• Logging

• Profiling

• Error Handling

• Health Checks

• Fast & Small Iterations

• Infrastructure code (Chef) along side Node

Page 14: Powering payments with Node.js

Application Structure

Page 15: Powering payments with Node.js

R ap id D e p loyme nt(A nd C ontinuous D e l iv e r y)

Page 16: Powering payments with Node.js

Automated Testing

Page 17: Powering payments with Node.js

Code Cut

Page 18: Powering payments with Node.js

Deployment

Page 19: Powering payments with Node.js

R unning at S c ale

Page 20: Powering payments with Node.js

Running at Scale• Vertical and Horizontal scaling

• Hardware and software load balancers

• Nginx reverse proxy

• Automated application health checks

• Graphite, Nagios & Newrelic

• Aggregated application logs, for quick triaging and metric collection

• Graceful rolling restarts

Page 21: Powering payments with Node.js

F utur e ?

Page 22: Powering payments with Node.js

Future?• Possibly use TypeScript or Flow

• As requirements evolve, re-evaluate tech decisions. Golang? Java? Rust?

Page 23: Powering payments with Node.js

A ny Q ue s tions ?

A L S O: s k yb e tc ar e e r s . c om J