SlideShare a Scribd company logo
1 of 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

More Related Content

More from C4Media

More from 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
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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 Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 

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