SlideShare uma empresa Scribd logo
1 de 41
BUILDING A RELIABLE CLOUD
BASED BANK IN JAVA
Jason Maude - Senior Engineer
@jasonmaude
InfoQ.com: News & Community Site
• Over 1,000,000 software developers, architects and CTOs read the site world-
wide every month
• 250,000 senior developers subscribe to our weekly newsletter
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• 2 dedicated podcast channels: The InfoQ Podcast, with a focus on
Architecture and The Engineering Culture Podcast, with a focus on building
• 96 deep dives on innovative topics packed as downloadable emags and
minibooks
• Over 40 new content items per week
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
starling-bank
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon San Francisco
www.qconsf.com
THE PROBLEM
WITH BANKING
“Move fast and break things. Unless you are
breaking stuff you are not moving fast
enough.”
Mark Zuckerberg
“Gringotts was the safest place in the world
for something you wanted to hide”
Harry Potter and the Philosopher's Stone by J K Rowling
A tale of banking woe
If you develop, you break things
WHO ARE
STARLING BANK?
Who are Starling Bank?
• Tech start-up with a banking licence
• ~100% cloud-based, mobile-only
• Mastercard debit card
• DDs and faster payments
• Location-enriched transaction feed
• ApplePay, GooglePay, FitBitPay...
• Spending insights
• Granular card control
• Open APIs & developer platform
We built a bank in a year
• Jan 2014 - Founded by Anne Boden
• Jun 2014 - Kick-off with Regulators
• Sep 2015 - Technical prototypes
• Jul 2016 - Granted a partial banking license
• Nov 2016 - Launching the alpha app
• Feb 2017 - Launching the beta app
• Apr 2017 - Granted a full banking license
• May 2017 - Public launch
• Mar 2018 - Awarded Best British Bank
BUILDING
RELIABLE
ARCHITECTURE
Self-contained systems
http://scs-architecture.org
Self-contained systems
Recovery in distributed architectures
L.O.A.S.C.T.T.D.I.T.T.E.O.
DITTO architecture
(do idempotent things to others)
DITTO architecture
• Do everything at least once and at most once
• Retry (at least once)
• Idempotency (at most once)
• Work towards correctness, eventual consistency
• Reduce synchronicity to a minimum
• Save all requests to the database first
• Keep the smarts in the services, not in the pipes
• No distributed transactions
• Do not trust other services
POST
201 Created {uuid}
PUT {uuid}
202 Accepted
PUT {uuid}
202 Accepted
paymentcustomer bank
Make a
payment
DITTO in action
POST
PUT {uuid}
paymentcustomer bank
PUT {uuid}
202 Accepted
retry Idempotency provides “at most once”
Retry provides “at least once”
202 Accepted
retry
PUT {uuid}
PUT {uuid}
201 Created {uuid}
Catch-up processing
Catch Up
Processor
RC
RC
RC
But why Java?
• Exceptions are noisy and difficult to ignore
• Reliable ecosystem (user base, tooling, job market, etc)
• Integrations with legacy third parties (SOAP etc)
THE BENEFITS
OF DITTO
ARCHITECTURE
Instance termination is safe
Continual delivery of back-end
• Continual deployment to non-prod, sign-off into prod
• Auto build, dockerise, test, scan, deploy < 1h
• Code released to production up to 5 times a day
Bi-modal banking IT
• Incumbent banks operate:
- legacy backends that move at glacial pace
- … and try to iterate the customer experience faster
• We release the backend at 10x the rate of the mobile apps
- 1-5 backend software releases per day
- 1-2 infrastructure releases per day
- mobile apps released weekly or fortnightly
The “rolling” giphy
• Our auditors loved this one
• Yes it’s in our release documentation
• Clear signal in engineering channel that is release in progress
… and if something goes wrong...
Testing
• Chat-ops via Slack
• Available to all developers
Chaos
THE FUTURE
DITTO at scale: Self DOS
Catch Up
Processor
DITTO at scale: Racing to work
The future of the JVM
• Java as an ecosystem
• Is the upgrade to Java 9/10/11 worth it?
• Could someone else steal the crown?
SOME
IMPORTANT
TAKEAWAYS
Design software to be skeptical
Give EVERYTHING a UUID
Fire alarms are good
You can do anything you can undo
Thank you!
Check out the Starling Developer Podcast!
https://developer.starlingbank.com
@jasonmaude
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
starling-bank

Mais conteúdo relacionado

Mais de C4Media

Mais de C4Media (20)

Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 
Navigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsNavigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery Teams
 
High Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechHigh Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in Adtech
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/await
 
Opportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven UtopiaOpportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven Utopia
 
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/DayDatadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
 
Are We Really Cloud-Native?
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?
 
CockroachDB: Architecture of a Geo-Distributed SQL Database
CockroachDB: Architecture of a Geo-Distributed SQL DatabaseCockroachDB: Architecture of a Geo-Distributed SQL Database
CockroachDB: Architecture of a Geo-Distributed SQL Database
 
A Dive into Streams @LinkedIn with Brooklin
A Dive into Streams @LinkedIn with BrooklinA Dive into Streams @LinkedIn with Brooklin
A Dive into Streams @LinkedIn with Brooklin
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

Building a Reliable Cloud Based Bank in Java

  • 1. BUILDING A RELIABLE CLOUD BASED BANK IN JAVA Jason Maude - Senior Engineer @jasonmaude
  • 2. InfoQ.com: News & Community Site • Over 1,000,000 software developers, architects and CTOs read the site world- wide every month • 250,000 senior developers subscribe to our weekly newsletter • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • 2 dedicated podcast channels: The InfoQ Podcast, with a focus on Architecture and The Engineering Culture Podcast, with a focus on building • 96 deep dives on innovative topics packed as downloadable emags and minibooks • Over 40 new content items per week Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ starling-bank
  • 3. Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide Presented at QCon San Francisco www.qconsf.com
  • 5. “Move fast and break things. Unless you are breaking stuff you are not moving fast enough.” Mark Zuckerberg
  • 6. “Gringotts was the safest place in the world for something you wanted to hide” Harry Potter and the Philosopher's Stone by J K Rowling
  • 7. A tale of banking woe
  • 8. If you develop, you break things
  • 10. Who are Starling Bank? • Tech start-up with a banking licence • ~100% cloud-based, mobile-only • Mastercard debit card • DDs and faster payments • Location-enriched transaction feed • ApplePay, GooglePay, FitBitPay... • Spending insights • Granular card control • Open APIs & developer platform
  • 11. We built a bank in a year • Jan 2014 - Founded by Anne Boden • Jun 2014 - Kick-off with Regulators • Sep 2015 - Technical prototypes • Jul 2016 - Granted a partial banking license • Nov 2016 - Launching the alpha app • Feb 2017 - Launching the beta app • Apr 2017 - Granted a full banking license • May 2017 - Public launch • Mar 2018 - Awarded Best British Bank
  • 15. Recovery in distributed architectures
  • 18. DITTO architecture • Do everything at least once and at most once • Retry (at least once) • Idempotency (at most once) • Work towards correctness, eventual consistency • Reduce synchronicity to a minimum • Save all requests to the database first • Keep the smarts in the services, not in the pipes • No distributed transactions • Do not trust other services
  • 19. POST 201 Created {uuid} PUT {uuid} 202 Accepted PUT {uuid} 202 Accepted paymentcustomer bank Make a payment DITTO in action
  • 20. POST PUT {uuid} paymentcustomer bank PUT {uuid} 202 Accepted retry Idempotency provides “at most once” Retry provides “at least once” 202 Accepted retry PUT {uuid} PUT {uuid} 201 Created {uuid}
  • 22. But why Java? • Exceptions are noisy and difficult to ignore • Reliable ecosystem (user base, tooling, job market, etc) • Integrations with legacy third parties (SOAP etc)
  • 25. Continual delivery of back-end • Continual deployment to non-prod, sign-off into prod • Auto build, dockerise, test, scan, deploy < 1h • Code released to production up to 5 times a day
  • 26. Bi-modal banking IT • Incumbent banks operate: - legacy backends that move at glacial pace - … and try to iterate the customer experience faster • We release the backend at 10x the rate of the mobile apps - 1-5 backend software releases per day - 1-2 infrastructure releases per day - mobile apps released weekly or fortnightly
  • 27. The “rolling” giphy • Our auditors loved this one • Yes it’s in our release documentation • Clear signal in engineering channel that is release in progress
  • 28. … and if something goes wrong...
  • 29. Testing • Chat-ops via Slack • Available to all developers
  • 30. Chaos
  • 32. DITTO at scale: Self DOS Catch Up Processor
  • 33. DITTO at scale: Racing to work
  • 34. The future of the JVM • Java as an ecosystem • Is the upgrade to Java 9/10/11 worth it? • Could someone else steal the crown?
  • 36. Design software to be skeptical
  • 39. You can do anything you can undo
  • 40. Thank you! Check out the Starling Developer Podcast! https://developer.starlingbank.com @jasonmaude
  • 41. Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ starling-bank