Video and slides synchronized, mp3 and slide download available at URL https://bit.ly/2FNfhjM.
Jason Maude talks about the experience of Starling Bank, a mobile-only, cloud-based bank that launched in the UK in 2017. He looks at the system architecture of the bank, the design principles that give them the ability to release quickly and reliably, and why they decided to build the back end using Java. Filmed at qconsf.com.
Jason Maude has over a decade of experience working in the financial sector, primarily in creating and delivering software. He is passionate about creating teams and explaining complex technical concepts to those who are convinced that they won't be able to understand them. He currently works at Starling Bank as one of their lead engineers and host of the Starling podcast.
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
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
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