SlideShare a Scribd company logo
Ross Sharrott
Founder / CTO
rsharrott@moneytree.jp
@moneytreejp
Who Am I?

Ross Sharrott
Founder & CTO of Moneytree
American
10 Years in Japan (Feb 24!)
Previously Senior IT Manager

Love distributed architectures in the
cloud
What is Moneytree?

Internet banking is fragmented; not simple
Email is Simple

Gmail

Yahoo!

Work, etc.

For mail we use just ONE app!
Radically simplify your relationship with money
and make it beautiful.
Data Aggregator

Our Goals:
Download accounts for 1M people every
day
Deliver new data in < 1 minute
2-3 developers
Sleep at night
First Idea

I know…I’ll use a queue!
Original Queue Based Process

Download
Data

Process
Statements

Store Data
1 Account / Many Statements
But we had a problem…

To determine a CC balance, we need
information from multiple statements
We needed a post statement process
Download
Data

Process
Statements

Post Process
Statements

Store Data +
Additional
Information
What We Needed

Download
Data

Process
Statements

• Statement 1
• Statement 2
• Many More

Post
Process
Queue Falls Down

I know…I’ll use a queue!
Queues are linear
Where are we in the process?
Logged in yet? Processing data?

What do you do when a job fails?
How do you relate jobs to one workflow?
Enter SWF

AWS Managed Service
Coordinates Workflows / Maintains
history
Provides multiple queues called Task
Lists

Handle decision points with Deciders
Perform tasks with Activity Workers
Real World – A Restaurant
SWF World – A Restaurant

Decider – does nothing, makes decisions
Workflow Starter – takes orders

Activity Worker – makes food
Activity Worker – distributes food
SWF – maintains history, distributes
tasks
Activity Worker

Very similar to any queue worker
Handles a specific task

Polls a Task List to get new info
Reports activity success or failure
Puts results in a DB or on S3, etc.
Workflow Decider

Uses workflow history to make decisions
Schedules tasks

Handles rescheduling failures & timeouts
Reacts to external events (Signals)
Reacts to completion events
Moneytree’s Workflow

Statement
Download
Data

Post
Process
Statement
Moneytree’s SWF Architecture
1 Day of Work

Yesterday:
70,000 Workflows

Average Completion Time: 1 Minute
575,000 Decision Tasks
146,000 Statements Processed
70,000 Aggregation Tasks
70,000 Post Process Tasks
Data Aggregator

Our Goals:


1M people every day



Deliver new data in < 1 minute



2-3 developers



Sleep at night
How To Sleep At Night

Make Workers Scalable
Avoid SWF API Throttling
Expect Failures
Measure Everything
Make Workers Scalable

Separate concerns into individual
workers

Scale each worker process individually
Automate scaling your workers
Make workers idempotent
You can always try again
Avoid API Throttling
Don’t call GetWorkflowHistory
Stress test your implementation
Limits are by Region, not domain!
Get your limits raised
We hit limits on day 1

Use exponential retry
Have a circuit breaker
Expect Failures
Cloud = Failures
Dyno / EC2 instance restarts
Network & Service outages

Don’t wait for failed processes
Use aggressive timeouts
Use heartbeats for long processes
Monitor Everything
Use Performance Monitoring
10x increase in performance = 10x workers
New Relic & Cloudwatch

Centralize Logging
Cloud resources disappear w/their logs
Papertrail / Logentries

Log Everything & Setup Alerts
If you don’t log it, you can’t fix it
Sleep At Night

Make Workers Scalable
Avoid SWF API Throttling
Expect Failures
Measure Everything
Thank You!
Moneytree is hiring!
iOS Developers
API Developers / AWS Dev Ops
Technology Ninjas
Ross Sharrott Founder / CTO
rsharrott@moneytree.jp
@moneytreejp

More Related Content

What's hot

Big Data and Classification
Big Data and ClassificationBig Data and Classification
Big Data and Classification
303Computing
 
Big data
Big dataBig data
Big data
Nausheen Hasan
 
BIG DATA & DATA ANALYTICS
BIG  DATA & DATA  ANALYTICSBIG  DATA & DATA  ANALYTICS
BIG DATA & DATA ANALYTICS
NAGARAJAGIDDE
 
Big data tools
Big data toolsBig data tools
Big data tools
Novita Sari
 
Big Data Hadoop
Big Data HadoopBig Data Hadoop
Big Data Hadoop
Techsparks
 
Big data
Big dataBig data
Introduction to big data
Introduction to big dataIntroduction to big data
Introduction to big data
Hari Priya
 
Big data.
Big data.Big data.
Big data.
MeganShaw38
 
Big data
Big dataBig data
Big data
Big dataBig data
Big datahsn99
 
Thilga
ThilgaThilga
Data mining with big data
Data mining with big dataData mining with big data
Data mining with big data
kk1718
 
Big Data Evolution
Big Data EvolutionBig Data Evolution
Big Data Evolution
itnewsafrica
 
Big data
Big dataBig data
Big data
Pooja Shah
 
Big Data Analytics: Applications and Opportunities in On-line Predictive Mode...
Big Data Analytics: Applications and Opportunities in On-line Predictive Mode...Big Data Analytics: Applications and Opportunities in On-line Predictive Mode...
Big Data Analytics: Applications and Opportunities in On-line Predictive Mode...
BigMine
 
Big Data: The 6 Key Skills Every Business Needs
Big Data: The 6 Key Skills Every Business NeedsBig Data: The 6 Key Skills Every Business Needs
Big Data: The 6 Key Skills Every Business Needs
Bernard Marr
 
Big Data for Beginners
Big Data for BeginnersBig Data for Beginners
Big Data for Beginners
Michael Perez
 
Big Data Presentation
Big  Data PresentationBig  Data Presentation
Big Data Presentation
Ritika Barethia
 
Big data
Big dataBig data
Big data
madhavsolanki
 
Big Data Tutorial | What Is Big Data | Big Data Hadoop Tutorial For Beginners...
Big Data Tutorial | What Is Big Data | Big Data Hadoop Tutorial For Beginners...Big Data Tutorial | What Is Big Data | Big Data Hadoop Tutorial For Beginners...
Big Data Tutorial | What Is Big Data | Big Data Hadoop Tutorial For Beginners...
Simplilearn
 

What's hot (20)

Big Data and Classification
Big Data and ClassificationBig Data and Classification
Big Data and Classification
 
Big data
Big dataBig data
Big data
 
BIG DATA & DATA ANALYTICS
BIG  DATA & DATA  ANALYTICSBIG  DATA & DATA  ANALYTICS
BIG DATA & DATA ANALYTICS
 
Big data tools
Big data toolsBig data tools
Big data tools
 
Big Data Hadoop
Big Data HadoopBig Data Hadoop
Big Data Hadoop
 
Big data
Big dataBig data
Big data
 
Introduction to big data
Introduction to big dataIntroduction to big data
Introduction to big data
 
Big data.
Big data.Big data.
Big data.
 
Big data
Big dataBig data
Big data
 
Big data
Big dataBig data
Big data
 
Thilga
ThilgaThilga
Thilga
 
Data mining with big data
Data mining with big dataData mining with big data
Data mining with big data
 
Big Data Evolution
Big Data EvolutionBig Data Evolution
Big Data Evolution
 
Big data
Big dataBig data
Big data
 
Big Data Analytics: Applications and Opportunities in On-line Predictive Mode...
Big Data Analytics: Applications and Opportunities in On-line Predictive Mode...Big Data Analytics: Applications and Opportunities in On-line Predictive Mode...
Big Data Analytics: Applications and Opportunities in On-line Predictive Mode...
 
Big Data: The 6 Key Skills Every Business Needs
Big Data: The 6 Key Skills Every Business NeedsBig Data: The 6 Key Skills Every Business Needs
Big Data: The 6 Key Skills Every Business Needs
 
Big Data for Beginners
Big Data for BeginnersBig Data for Beginners
Big Data for Beginners
 
Big Data Presentation
Big  Data PresentationBig  Data Presentation
Big Data Presentation
 
Big data
Big dataBig data
Big data
 
Big Data Tutorial | What Is Big Data | Big Data Hadoop Tutorial For Beginners...
Big Data Tutorial | What Is Big Data | Big Data Hadoop Tutorial For Beginners...Big Data Tutorial | What Is Big Data | Big Data Hadoop Tutorial For Beginners...
Big Data Tutorial | What Is Big Data | Big Data Hadoop Tutorial For Beginners...
 

Similar to Moneytree - Data Aggregation with SWF

LogmaticPresentation
LogmaticPresentationLogmaticPresentation
LogmaticPresentation
logmatic.io
 
2011 06 15 velocity conf from visible ops to dev ops final
2011 06 15 velocity conf   from visible ops to dev ops final2011 06 15 velocity conf   from visible ops to dev ops final
2011 06 15 velocity conf from visible ops to dev ops final
Gene Kim
 
Big Data Day LA 2016/ Big Data Track - Rapid Analytics @ Netflix LA (Updated ...
Big Data Day LA 2016/ Big Data Track - Rapid Analytics @ Netflix LA (Updated ...Big Data Day LA 2016/ Big Data Track - Rapid Analytics @ Netflix LA (Updated ...
Big Data Day LA 2016/ Big Data Track - Rapid Analytics @ Netflix LA (Updated ...
Data Con LA
 
2011 09 19 LSPE Dev Ops Cookbook 1a
2011 09 19 LSPE Dev Ops Cookbook 1a2011 09 19 LSPE Dev Ops Cookbook 1a
2011 09 19 LSPE Dev Ops Cookbook 1aGene Kim
 
2011 09 18 United "Platitudes, reality and promise"
2011 09 18 United "Platitudes, reality and promise"2011 09 18 United "Platitudes, reality and promise"
2011 09 18 United "Platitudes, reality and promise"Gene Kim
 
SharePoint Operations Framework - Planning and Guidance
SharePoint Operations Framework - Planning and GuidanceSharePoint Operations Framework - Planning and Guidance
SharePoint Operations Framework - Planning and Guidance
Chandima Kulathilake
 
Big Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil GamesBig Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil Games
Rob Winters
 
The Evolution of a Scrappy Startup to a Successful Web Service
The Evolution of a Scrappy Startup to a Successful Web ServiceThe Evolution of a Scrappy Startup to a Successful Web Service
The Evolution of a Scrappy Startup to a Successful Web Service
Poornima Vijayashanker
 
Implement Fingerprint authentication for employee automation system
Implement Fingerprint authentication for employee automation systemImplement Fingerprint authentication for employee automation system
Implement Fingerprint authentication for employee automation system
Tanjarul Islam Mishu
 
Maintaining a-healthy-architecture-in-sf
Maintaining a-healthy-architecture-in-sfMaintaining a-healthy-architecture-in-sf
Maintaining a-healthy-architecture-in-sf
panayaofficial
 
I T E002 Coffee 091707a
I T E002  Coffee 091707aI T E002  Coffee 091707a
I T E002 Coffee 091707a
Dreamforce07
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
sthicks14
 
Building a Compliance System for your Business
Building a Compliance System for your BusinessBuilding a Compliance System for your Business
Building a Compliance System for your Business
Sarah Sajedi
 
Enough Blame for System Performance Issues
Enough Blame for System Performance IssuesEnough Blame for System Performance Issues
Enough Blame for System Performance IssuesMahesh Vallampati
 
Everything You Need to Know About RPA in 30 Minutes
Everything You Need to Know About RPA in 30 MinutesEverything You Need to Know About RPA in 30 Minutes
Everything You Need to Know About RPA in 30 Minutes
HelpSystems
 
Rapid Data Analytics @ Netflix
Rapid Data Analytics @ NetflixRapid Data Analytics @ Netflix
Rapid Data Analytics @ Netflix
Data Con LA
 
Rapid Data Analytics @ Netflix
Rapid Data Analytics @ NetflixRapid Data Analytics @ Netflix
Rapid Data Analytics @ Netflix
Monisha Kanoth
 
2011 03 14 dev ops meetup - top lessons creating dev-ops super-tribes 2b
2011 03 14   dev ops meetup - top lessons creating dev-ops super-tribes 2b2011 03 14   dev ops meetup - top lessons creating dev-ops super-tribes 2b
2011 03 14 dev ops meetup - top lessons creating dev-ops super-tribes 2b
Gene Kim
 
[2C6]Everyplay_Big_Data
[2C6]Everyplay_Big_Data[2C6]Everyplay_Big_Data
[2C6]Everyplay_Big_Data
NAVER D2
 
Mission: IT operations for a good night's sleep
Mission: IT operations for a good night's sleepMission: IT operations for a good night's sleep
Mission: IT operations for a good night's sleep
wwwally
 

Similar to Moneytree - Data Aggregation with SWF (20)

LogmaticPresentation
LogmaticPresentationLogmaticPresentation
LogmaticPresentation
 
2011 06 15 velocity conf from visible ops to dev ops final
2011 06 15 velocity conf   from visible ops to dev ops final2011 06 15 velocity conf   from visible ops to dev ops final
2011 06 15 velocity conf from visible ops to dev ops final
 
Big Data Day LA 2016/ Big Data Track - Rapid Analytics @ Netflix LA (Updated ...
Big Data Day LA 2016/ Big Data Track - Rapid Analytics @ Netflix LA (Updated ...Big Data Day LA 2016/ Big Data Track - Rapid Analytics @ Netflix LA (Updated ...
Big Data Day LA 2016/ Big Data Track - Rapid Analytics @ Netflix LA (Updated ...
 
2011 09 19 LSPE Dev Ops Cookbook 1a
2011 09 19 LSPE Dev Ops Cookbook 1a2011 09 19 LSPE Dev Ops Cookbook 1a
2011 09 19 LSPE Dev Ops Cookbook 1a
 
2011 09 18 United "Platitudes, reality and promise"
2011 09 18 United "Platitudes, reality and promise"2011 09 18 United "Platitudes, reality and promise"
2011 09 18 United "Platitudes, reality and promise"
 
SharePoint Operations Framework - Planning and Guidance
SharePoint Operations Framework - Planning and GuidanceSharePoint Operations Framework - Planning and Guidance
SharePoint Operations Framework - Planning and Guidance
 
Big Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil GamesBig Data at a Gaming Company: Spil Games
Big Data at a Gaming Company: Spil Games
 
The Evolution of a Scrappy Startup to a Successful Web Service
The Evolution of a Scrappy Startup to a Successful Web ServiceThe Evolution of a Scrappy Startup to a Successful Web Service
The Evolution of a Scrappy Startup to a Successful Web Service
 
Implement Fingerprint authentication for employee automation system
Implement Fingerprint authentication for employee automation systemImplement Fingerprint authentication for employee automation system
Implement Fingerprint authentication for employee automation system
 
Maintaining a-healthy-architecture-in-sf
Maintaining a-healthy-architecture-in-sfMaintaining a-healthy-architecture-in-sf
Maintaining a-healthy-architecture-in-sf
 
I T E002 Coffee 091707a
I T E002  Coffee 091707aI T E002  Coffee 091707a
I T E002 Coffee 091707a
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 
Building a Compliance System for your Business
Building a Compliance System for your BusinessBuilding a Compliance System for your Business
Building a Compliance System for your Business
 
Enough Blame for System Performance Issues
Enough Blame for System Performance IssuesEnough Blame for System Performance Issues
Enough Blame for System Performance Issues
 
Everything You Need to Know About RPA in 30 Minutes
Everything You Need to Know About RPA in 30 MinutesEverything You Need to Know About RPA in 30 Minutes
Everything You Need to Know About RPA in 30 Minutes
 
Rapid Data Analytics @ Netflix
Rapid Data Analytics @ NetflixRapid Data Analytics @ Netflix
Rapid Data Analytics @ Netflix
 
Rapid Data Analytics @ Netflix
Rapid Data Analytics @ NetflixRapid Data Analytics @ Netflix
Rapid Data Analytics @ Netflix
 
2011 03 14 dev ops meetup - top lessons creating dev-ops super-tribes 2b
2011 03 14   dev ops meetup - top lessons creating dev-ops super-tribes 2b2011 03 14   dev ops meetup - top lessons creating dev-ops super-tribes 2b
2011 03 14 dev ops meetup - top lessons creating dev-ops super-tribes 2b
 
[2C6]Everyplay_Big_Data
[2C6]Everyplay_Big_Data[2C6]Everyplay_Big_Data
[2C6]Everyplay_Big_Data
 
Mission: IT operations for a good night's sleep
Mission: IT operations for a good night's sleepMission: IT operations for a good night's sleep
Mission: IT operations for a good night's sleep
 

Recently uploaded

Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 

Recently uploaded (20)

Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 

Moneytree - Data Aggregation with SWF

  • 1. Ross Sharrott Founder / CTO rsharrott@moneytree.jp @moneytreejp
  • 2. Who Am I? Ross Sharrott Founder & CTO of Moneytree American 10 Years in Japan (Feb 24!) Previously Senior IT Manager Love distributed architectures in the cloud
  • 3. What is Moneytree? Internet banking is fragmented; not simple
  • 4. Email is Simple Gmail Yahoo! Work, etc. For mail we use just ONE app!
  • 5. Radically simplify your relationship with money
  • 6. and make it beautiful.
  • 7. Data Aggregator Our Goals: Download accounts for 1M people every day Deliver new data in < 1 minute 2-3 developers Sleep at night
  • 9. Original Queue Based Process Download Data Process Statements Store Data
  • 10. 1 Account / Many Statements But we had a problem… To determine a CC balance, we need information from multiple statements We needed a post statement process Download Data Process Statements Post Process Statements Store Data + Additional Information
  • 11. What We Needed Download Data Process Statements • Statement 1 • Statement 2 • Many More Post Process
  • 12. Queue Falls Down I know…I’ll use a queue! Queues are linear Where are we in the process? Logged in yet? Processing data? What do you do when a job fails? How do you relate jobs to one workflow?
  • 13. Enter SWF AWS Managed Service Coordinates Workflows / Maintains history Provides multiple queues called Task Lists Handle decision points with Deciders Perform tasks with Activity Workers
  • 14. Real World – A Restaurant
  • 15. SWF World – A Restaurant Decider – does nothing, makes decisions Workflow Starter – takes orders Activity Worker – makes food Activity Worker – distributes food SWF – maintains history, distributes tasks
  • 16. Activity Worker Very similar to any queue worker Handles a specific task Polls a Task List to get new info Reports activity success or failure Puts results in a DB or on S3, etc.
  • 17. Workflow Decider Uses workflow history to make decisions Schedules tasks Handles rescheduling failures & timeouts Reacts to external events (Signals) Reacts to completion events
  • 20. 1 Day of Work Yesterday: 70,000 Workflows Average Completion Time: 1 Minute 575,000 Decision Tasks 146,000 Statements Processed 70,000 Aggregation Tasks 70,000 Post Process Tasks
  • 21. Data Aggregator Our Goals:  1M people every day  Deliver new data in < 1 minute  2-3 developers  Sleep at night
  • 22. How To Sleep At Night Make Workers Scalable Avoid SWF API Throttling Expect Failures Measure Everything
  • 23. Make Workers Scalable Separate concerns into individual workers Scale each worker process individually Automate scaling your workers Make workers idempotent You can always try again
  • 24. Avoid API Throttling Don’t call GetWorkflowHistory Stress test your implementation Limits are by Region, not domain! Get your limits raised We hit limits on day 1 Use exponential retry Have a circuit breaker
  • 25. Expect Failures Cloud = Failures Dyno / EC2 instance restarts Network & Service outages Don’t wait for failed processes Use aggressive timeouts Use heartbeats for long processes
  • 26. Monitor Everything Use Performance Monitoring 10x increase in performance = 10x workers New Relic & Cloudwatch Centralize Logging Cloud resources disappear w/their logs Papertrail / Logentries Log Everything & Setup Alerts If you don’t log it, you can’t fix it
  • 27. Sleep At Night Make Workers Scalable Avoid SWF API Throttling Expect Failures Measure Everything
  • 28. Thank You! Moneytree is hiring! iOS Developers API Developers / AWS Dev Ops Technology Ninjas Ross Sharrott Founder / CTO rsharrott@moneytree.jp @moneytreejp

Editor's Notes

  1. Manager – does nothing, makes decisionsWaitress – takes ordersCook – makes foodHall Staff – delivers foodPOS System – maintains history, distributes tasks
  2. Long Poll SWF for new decisions. Monitors a single decision task list.
  3. Top Level is simpleBut…We can fail to login or need additional informationWe can fail to process a statement
  4. Decider to handle the WorkflowData Aggregation Activity WorkerStatement Processing Activity WorkerPost Processing Activity WorkerShare Data via S3