SlideShare a Scribd company logo
“Lose a penny and everybody goes %#!’ing crazy!”
Introduction to PayPal technology

     Challenges & solutions

        Design Concepts
Technology
http://ajsmarowsky.tripod.com/WEB260_test2/images/img_online_crime.jpg
web/API                              C++/Java/Python
                                                   Linux



services                                C++/Java
                                                   Linux



                        permanent
transient
            “mayfly”    store            Oracle
store
                        (database)       IBM/AIX, Sun
                Linux
web             API




                   payment
auth     wallet
                  processing
foreign
         risk      exchange     fees
        models

                                         limits
receiving
  prefs.

                                   refunds
             IPN        item
                         info
Challenges/Solution
s
•   reliability
•   security
•   scale
app




           1 work
           2 work
           3 COMMIT




Redo log
              standby   offsite failover
app A




1 work
2 work
3 insert message   5 read message
                                         app B
4 COMMIT



                                    6 if message isn’t “done”
                                    7 work
                                    8 mark message as “done”
                                    9 COMMIT
5 sync call
     app A




1 work
2 work
3 insert message   10 read message
                                          app B
4 COMMIT



                                     6 if message isn’t “done”
                                     7 work
                                     8 mark message as “done”
                                     9 COMMIT
physical security
 machine access controls
         firewalls
service-level access control
  encryption on the wire
     encryption at rest
hardware encryption (HSM)
balance log              balance:   $100   Account Activity
Oct 1         open: $0                     Oct 12      Add Funds   $15
Oct 12        +$150                                    from Bank   0
Oct 13        - $50                        Oct 13      Balance-    $50
                                                       funded
                                                       Payment
2002      2011
payments/sec   tens      hundreds
SLOC           ~1M       ~10M
applications   tens      hundreds
developers     tens      thousands
release LTS    monthly   daily
complexity     some      lots
server




   child process
server               server                       server

         machine              machine                      machine




            read                         read
           replica                      replica
app 1   app 2              app 3   app 4




                database
app 1   app 2              app 3   app 4




                database
app 1        app 2                   app 3     app 4




        cs
                risk
                       transaction   profile
                            s
app 1             app 2                    app 3        app 4




                  US                      EU
        profile           txn   profile        txn

         risk             cs     risk              cs
Account Servicing      Financial Product   Mobile         Risk
Compliance             Help                Money          Security
Consumer               History             Money Market   Shipping
Customer Service       Incentive           Notification   Skype™
Dropbox                Infrastructure      Payflow        Trinity™
FinOps/Recon           Marketing           Platform       User
FinSys                 Marketplaces        Presentation   Web
Financial Instrument   Merchant
app_A:               app A:
 CONNECTS_TO app_B    DEPENDS_ON foo.a
 CONNECTS_TO app_C
                     library foo.a:
…                      INCLUDES foo.o
                       DEPENDS_ON bar.a
                       ONLY_WITH payment_app
Design Concepts
History page

Change
password

Payments
reliable orchestration




customer 1                    customer 2


     eventually consistent
payment
processing
 payment     customer
processing    balance
 recovery

                        idem-
                        potent
Wrap-up
“Lose a penny and everybody goes
%#!’ing crazy!”

   “It’s all about the [transactions], [baby]”
Life Beyond Distributed Transactions

The PayPal Wars
Thanks!

Q&A

More Related Content

Similar to PayPal under the hood

01 introduction
01 introduction01 introduction
01 introduction
Volker Kraft
 
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...
confluent
 
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...
confluent
 
BlackHat EU 2012 - Zhenhua Liu - Breeding Sandworms: How To Fuzz Your Way Out...
BlackHat EU 2012 - Zhenhua Liu - Breeding Sandworms: How To Fuzz Your Way Out...BlackHat EU 2012 - Zhenhua Liu - Breeding Sandworms: How To Fuzz Your Way Out...
BlackHat EU 2012 - Zhenhua Liu - Breeding Sandworms: How To Fuzz Your Way Out...
MindShare_kk
 
On Failure and Resilience
On Failure and ResilienceOn Failure and Resilience
On Failure and ResilienceMike Brittain
 
C# Client to Cloud
C# Client to CloudC# Client to Cloud
C# Client to Cloud
Stuart Lodge
 
Real-World WebAppSec Flaws - Examples and Countermeasues
Real-World WebAppSec Flaws - Examples and CountermeasuesReal-World WebAppSec Flaws - Examples and Countermeasues
Real-World WebAppSec Flaws - Examples and Countermeasues
volvent
 
J-Spring 2018 - A journey from Java EE to Cloud Native microservices
J-Spring 2018 - A journey from Java EE to Cloud Native microservicesJ-Spring 2018 - A journey from Java EE to Cloud Native microservices
J-Spring 2018 - A journey from Java EE to Cloud Native microservices
Vincent Oostindie
 
API Security and Management Best Practices
API Security and Management Best PracticesAPI Security and Management Best Practices
API Security and Management Best Practices
CA API Management
 
Protecting Your APIs Against Attack & Hijack
Protecting Your APIs Against Attack & Hijack Protecting Your APIs Against Attack & Hijack
Protecting Your APIs Against Attack & Hijack
CA API Management
 
How to build a server and a iPhone client application using the Apple Push No...
How to build a server and a iPhone client application using the Apple Push No...How to build a server and a iPhone client application using the Apple Push No...
How to build a server and a iPhone client application using the Apple Push No...
Shu Masuda
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloud
umityalcinalp
 
Building Scalable and Robust Solutions with Service Bus in Cloud and Server
Building Scalable and Robust Solutions with Service Bus in Cloud and ServerBuilding Scalable and Robust Solutions with Service Bus in Cloud and Server
Building Scalable and Robust Solutions with Service Bus in Cloud and Server
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
Indiginox
 
How to Build a Successful API Program: Best Practices For the Carrier
How to Build a Successful API Program: Best Practices For the CarrierHow to Build a Successful API Program: Best Practices For the Carrier
How to Build a Successful API Program: Best Practices For the Carrier
CA API Management
 
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
Stefan Kolb
 
Seaside - The Revenge of Smalltalk
Seaside - The Revenge of SmalltalkSeaside - The Revenge of Smalltalk
Seaside - The Revenge of Smalltalk
Lukas Renggli
 
From Ruby to Node.js
From Ruby to Node.jsFrom Ruby to Node.js
From Ruby to Node.js
jubilem
 
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Kai Wähner
 
F5 - BigIP ASM introduction
F5 - BigIP ASM introductionF5 - BigIP ASM introduction
F5 - BigIP ASM introductionJimmy Saigon
 

Similar to PayPal under the hood (20)

01 introduction
01 introduction01 introduction
01 introduction
 
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...
Apache Kafka vs. Traditional Middleware (Kai Waehner, Confluent) Frankfurt 20...
 
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB) - Friends, Enemies or ...
 
BlackHat EU 2012 - Zhenhua Liu - Breeding Sandworms: How To Fuzz Your Way Out...
BlackHat EU 2012 - Zhenhua Liu - Breeding Sandworms: How To Fuzz Your Way Out...BlackHat EU 2012 - Zhenhua Liu - Breeding Sandworms: How To Fuzz Your Way Out...
BlackHat EU 2012 - Zhenhua Liu - Breeding Sandworms: How To Fuzz Your Way Out...
 
On Failure and Resilience
On Failure and ResilienceOn Failure and Resilience
On Failure and Resilience
 
C# Client to Cloud
C# Client to CloudC# Client to Cloud
C# Client to Cloud
 
Real-World WebAppSec Flaws - Examples and Countermeasues
Real-World WebAppSec Flaws - Examples and CountermeasuesReal-World WebAppSec Flaws - Examples and Countermeasues
Real-World WebAppSec Flaws - Examples and Countermeasues
 
J-Spring 2018 - A journey from Java EE to Cloud Native microservices
J-Spring 2018 - A journey from Java EE to Cloud Native microservicesJ-Spring 2018 - A journey from Java EE to Cloud Native microservices
J-Spring 2018 - A journey from Java EE to Cloud Native microservices
 
API Security and Management Best Practices
API Security and Management Best PracticesAPI Security and Management Best Practices
API Security and Management Best Practices
 
Protecting Your APIs Against Attack & Hijack
Protecting Your APIs Against Attack & Hijack Protecting Your APIs Against Attack & Hijack
Protecting Your APIs Against Attack & Hijack
 
How to build a server and a iPhone client application using the Apple Push No...
How to build a server and a iPhone client application using the Apple Push No...How to build a server and a iPhone client application using the Apple Push No...
How to build a server and a iPhone client application using the Apple Push No...
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloud
 
Building Scalable and Robust Solutions with Service Bus in Cloud and Server
Building Scalable and Robust Solutions with Service Bus in Cloud and ServerBuilding Scalable and Robust Solutions with Service Bus in Cloud and Server
Building Scalable and Robust Solutions with Service Bus in Cloud and Server
 
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML-5 zum Unternehmens-Dashboard für Tablets
 
How to Build a Successful API Program: Best Practices For the Carrier
How to Build a Successful API Program: Best Practices For the CarrierHow to Build a Successful API Program: Best Practices For the Carrier
How to Build a Successful API Program: Best Practices For the Carrier
 
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für TabletsiEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
iEnterprise - Mit HTML5 zum Unternehmens-Dashboard für Tablets
 
Seaside - The Revenge of Smalltalk
Seaside - The Revenge of SmalltalkSeaside - The Revenge of Smalltalk
Seaside - The Revenge of Smalltalk
 
From Ruby to Node.js
From Ruby to Node.jsFrom Ruby to Node.js
From Ruby to Node.js
 
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
 
F5 - BigIP ASM introduction
F5 - BigIP ASM introductionF5 - BigIP ASM introduction
F5 - BigIP ASM introduction
 

More from X.commerce

PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
X.commerce
 
PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
X.commerce
 
Barcodes and QR codes in mobile apps
Barcodes and QR codes in mobile appsBarcodes and QR codes in mobile apps
Barcodes and QR codes in mobile apps
X.commerce
 
Creating a fantastic mobile experience
Creating a fantastic mobile experienceCreating a fantastic mobile experience
Creating a fantastic mobile experience
X.commerce
 
Creative complex commerce: Respecting the Customers’ brand while integrating ...
Creative complex commerce: Respecting the Customers’ brand while integrating ...Creative complex commerce: Respecting the Customers’ brand while integrating ...
Creative complex commerce: Respecting the Customers’ brand while integrating ...
X.commerce
 
Trending now and in the future: Social commerce
Trending now and in the future: Social commerceTrending now and in the future: Social commerce
Trending now and in the future: Social commerce
X.commerce
 
Handling the boom in international commerce
Handling the boom in international commerceHandling the boom in international commerce
Handling the boom in international commerce
X.commerce
 
The near future of real web applications
The near future of real web applicationsThe near future of real web applications
The near future of real web applications
X.commerce
 
Proudly Found Elsewhere: The Open Source Bonanza
Proudly Found Elsewhere: The Open Source BonanzaProudly Found Elsewhere: The Open Source Bonanza
Proudly Found Elsewhere: The Open Source Bonanza
X.commerce
 
Building immersive experiences: Usability you can really use
Building immersive experiences: Usability you can really useBuilding immersive experiences: Usability you can really use
Building immersive experiences: Usability you can really use
X.commerce
 
eBay From Ground Level to the Clouds
eBay From Ground Level to the CloudseBay From Ground Level to the Clouds
eBay From Ground Level to the Clouds
X.commerce
 
OpenStack: Enabling the Open Cloud Era
OpenStack: Enabling the Open Cloud EraOpenStack: Enabling the Open Cloud Era
OpenStack: Enabling the Open Cloud Era
X.commerce
 
Fun and commerce with shipping APIs
Fun and commerce with shipping APIsFun and commerce with shipping APIs
Fun and commerce with shipping APIs
X.commerce
 
APIs for catalogs
APIs for catalogsAPIs for catalogs
APIs for catalogs
X.commerce
 
Pop-up commerce
Pop-up commercePop-up commerce
Pop-up commerce
X.commerce
 
Adaptive APIs meet the real world - FundRazr
Adaptive APIs meet the real world - FundRazrAdaptive APIs meet the real world - FundRazr
Adaptive APIs meet the real world - FundRazr
X.commerce
 
Adaptive APIs meet the real world
Adaptive APIs meet the real worldAdaptive APIs meet the real world
Adaptive APIs meet the real world
X.commerce
 
Paypal checkout anytime anywhere paulam chang matt cole
Paypal checkout anytime anywhere paulam chang matt colePaypal checkout anytime anywhere paulam chang matt cole
Paypal checkout anytime anywhere paulam chang matt cole
X.commerce
 
Magento Integration Tests
Magento Integration TestsMagento Integration Tests
Magento Integration Tests
X.commerce
 
Developing loosely coupled modules with Magento
Developing loosely coupled modules with MagentoDeveloping loosely coupled modules with Magento
Developing loosely coupled modules with Magento
X.commerce
 

More from X.commerce (20)

PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
 
PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
PANEL: Mobile face-off: HTML 5 vs. native apps vs. mobile development platfor...
 
Barcodes and QR codes in mobile apps
Barcodes and QR codes in mobile appsBarcodes and QR codes in mobile apps
Barcodes and QR codes in mobile apps
 
Creating a fantastic mobile experience
Creating a fantastic mobile experienceCreating a fantastic mobile experience
Creating a fantastic mobile experience
 
Creative complex commerce: Respecting the Customers’ brand while integrating ...
Creative complex commerce: Respecting the Customers’ brand while integrating ...Creative complex commerce: Respecting the Customers’ brand while integrating ...
Creative complex commerce: Respecting the Customers’ brand while integrating ...
 
Trending now and in the future: Social commerce
Trending now and in the future: Social commerceTrending now and in the future: Social commerce
Trending now and in the future: Social commerce
 
Handling the boom in international commerce
Handling the boom in international commerceHandling the boom in international commerce
Handling the boom in international commerce
 
The near future of real web applications
The near future of real web applicationsThe near future of real web applications
The near future of real web applications
 
Proudly Found Elsewhere: The Open Source Bonanza
Proudly Found Elsewhere: The Open Source BonanzaProudly Found Elsewhere: The Open Source Bonanza
Proudly Found Elsewhere: The Open Source Bonanza
 
Building immersive experiences: Usability you can really use
Building immersive experiences: Usability you can really useBuilding immersive experiences: Usability you can really use
Building immersive experiences: Usability you can really use
 
eBay From Ground Level to the Clouds
eBay From Ground Level to the CloudseBay From Ground Level to the Clouds
eBay From Ground Level to the Clouds
 
OpenStack: Enabling the Open Cloud Era
OpenStack: Enabling the Open Cloud EraOpenStack: Enabling the Open Cloud Era
OpenStack: Enabling the Open Cloud Era
 
Fun and commerce with shipping APIs
Fun and commerce with shipping APIsFun and commerce with shipping APIs
Fun and commerce with shipping APIs
 
APIs for catalogs
APIs for catalogsAPIs for catalogs
APIs for catalogs
 
Pop-up commerce
Pop-up commercePop-up commerce
Pop-up commerce
 
Adaptive APIs meet the real world - FundRazr
Adaptive APIs meet the real world - FundRazrAdaptive APIs meet the real world - FundRazr
Adaptive APIs meet the real world - FundRazr
 
Adaptive APIs meet the real world
Adaptive APIs meet the real worldAdaptive APIs meet the real world
Adaptive APIs meet the real world
 
Paypal checkout anytime anywhere paulam chang matt cole
Paypal checkout anytime anywhere paulam chang matt colePaypal checkout anytime anywhere paulam chang matt cole
Paypal checkout anytime anywhere paulam chang matt cole
 
Magento Integration Tests
Magento Integration TestsMagento Integration Tests
Magento Integration Tests
 
Developing loosely coupled modules with Magento
Developing loosely coupled modules with MagentoDeveloping loosely coupled modules with Magento
Developing loosely coupled modules with Magento
 

Recently uploaded

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
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
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
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
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 

Recently uploaded (20)

20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
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
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
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
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 

PayPal under the hood

  • 1.
  • 2.
  • 3. “Lose a penny and everybody goes %#!’ing crazy!”
  • 4. Introduction to PayPal technology Challenges & solutions Design Concepts
  • 5.
  • 6.
  • 9. web/API C++/Java/Python Linux services C++/Java Linux permanent transient “mayfly” store Oracle store (database) IBM/AIX, Sun Linux
  • 10.
  • 11.
  • 12. web API payment auth wallet processing
  • 13. foreign risk exchange fees models limits receiving prefs. refunds IPN item info
  • 14. Challenges/Solution s • reliability • security • scale
  • 15.
  • 16. app 1 work 2 work 3 COMMIT Redo log standby offsite failover
  • 17. app A 1 work 2 work 3 insert message 5 read message app B 4 COMMIT 6 if message isn’t “done” 7 work 8 mark message as “done” 9 COMMIT
  • 18. 5 sync call app A 1 work 2 work 3 insert message 10 read message app B 4 COMMIT 6 if message isn’t “done” 7 work 8 mark message as “done” 9 COMMIT
  • 19.
  • 20. physical security machine access controls firewalls service-level access control encryption on the wire encryption at rest hardware encryption (HSM)
  • 21. balance log balance: $100 Account Activity Oct 1 open: $0 Oct 12 Add Funds $15 Oct 12 +$150 from Bank 0 Oct 13 - $50 Oct 13 Balance- $50 funded Payment
  • 22.
  • 23. 2002 2011 payments/sec tens hundreds SLOC ~1M ~10M applications tens hundreds developers tens thousands release LTS monthly daily complexity some lots
  • 24.
  • 25. server child process
  • 26. server server server machine machine machine read read replica replica
  • 27. app 1 app 2 app 3 app 4 database
  • 28.
  • 29.
  • 30.
  • 31. app 1 app 2 app 3 app 4 database
  • 32. app 1 app 2 app 3 app 4 cs risk transaction profile s
  • 33.
  • 34. app 1 app 2 app 3 app 4 US EU profile txn profile txn risk cs risk cs
  • 35.
  • 36. Account Servicing Financial Product Mobile Risk Compliance Help Money Security Consumer History Money Market Shipping Customer Service Incentive Notification Skype™ Dropbox Infrastructure Payflow Trinity™ FinOps/Recon Marketing Platform User FinSys Marketplaces Presentation Web Financial Instrument Merchant
  • 37. app_A: app A: CONNECTS_TO app_B DEPENDS_ON foo.a CONNECTS_TO app_C library foo.a: … INCLUDES foo.o DEPENDS_ON bar.a ONLY_WITH payment_app
  • 39.
  • 41. reliable orchestration customer 1 customer 2 eventually consistent
  • 42. payment processing payment customer processing balance recovery idem- potent
  • 43.
  • 45. “Lose a penny and everybody goes %#!’ing crazy!” “It’s all about the [transactions], [baby]”
  • 46. Life Beyond Distributed Transactions The PayPal Wars

Editor's Notes

  1. former engineercaptures our philosophy
  2. what paypal tech doesI picked some problemsideas influencing devsampler platetechnical, dense12:30-1:15 Thurs 10/13 Room 2018(40m, 5m Q&A)
  3. startuprelease nights, stayed up late, ate eggrolls, and crossed fingers that the site wouldn’t crashdb pw
  4. daughter, (new reason to stay up all night)still eat eggrolls for release, but now it happens during the day (don’t sleep under desks)even if I wanted, customer data with 10 foot polewhat’s inside?
  5. early engineerswere smart, motivated - take over the worldno problem unsolveable, no technique off-limitsinnovation (GL – impl of captcha)huge copy/paste, “magic” communication
  6. voila! inside kind of looks like this.
  7. spend money on reliable data storehttpd & geronimo
  8. 1998 ecosystemfounding culture of “we can build it better” – different nowC++ ecosystem is weak compared to what you see in Java, Pythonwhat does all this stuff do?
  9. trend: API box covering more
  10. tech problems, our solutions
  11. 3 themes for problems
  12. why do we consider this “reliable” at this point?redo log for raw datastandby – fast failoveroffsite – recover from disasterwhat about pieces in payments that have to work together
  13. lots of different systems involved in fulfilling a payment, working together reliablyif you wonder about delay
  14. ensure that a payment reaches the end stateinfra technique used many domainsas a business that deals with money, how do we build trust that nothing fishy is going on?
  15. trustworthy!how do you prevent or and detect tampering?
  16. responsibleexamples in the industrypreso: Bill Corry info secwhat about people that are allowed to touch these things?
  17. Two ways to answer the same questionchain of comparisons ultimately takes you to border between PP and external financial systemor penny-slicing, like insuperman III?round-off slicing doesn’t really apply – PP is in the middle of fxtxns, and round-off would have to be a txn
  18. tricky word because it can apply to a lot of things
  19. Does your codebase have “room”?tech organization that experienced huge, continuous growth, all of these dims have had “scaling” challenges
  20. payment processing capacitymem managementzombie boxes in/out rotationpush (connections)less eff, but SIMPLE to debug/operateput on read-only instances of DB’shorizontal scaling, indefiniteisolate problems of state-mgt
  21. our strategy for scaling readsauthentication, customer historybut what about state?
  22. monster box, could take 128 CPUs, started with 48
  23. too much work sync between cpuswork not totally independent (indices, etc.)
  24. business functionpartition by domain, independent machinesone machine lot of CPUs couldn’t do it
  25. dependencies!points of failure!work gets to be too big for one?
  26. don’t need all partitions to serve requestlocalize customer data to an in-country datacenterwhat about work spanning users (later)
  27. hiring more peoplelogisticsgetting people into a roommake room, keep small scope
  28. domainsexercise at first forced us to define “what paypalis”given these buckets, next question was how to ensure ensure dependencies don’t just turn it into a black holesmall scope, SOAbut something else that’s proved effective is…
  29. files that specify dependenciestopology and securitymaven has thistools that tell us, constrain, what talks to whatenforces boundaries – keeps things apartbut how do you get composition without coupling?
  30. some principles that we’re working with, to ensure scales and is reliablesum it up in one phrase
  31. ACID propertiesdo work, spanning lots of systems, together, in a way that ensures a consistent outcomeincomplete financial activityhow to classify “work” or transactions?
  32. how to keep these transactions consistent at scale?first two are easy – replicas, work on single partitions
  33. entities are customersother happens eventuallydecouples how they get their job done, contentionconsistent state change across entitiescloud storage APIs – this constraint in txnswhat’s the difficulty with this model?
  34. RPC/http/soapreliable, trustworthy - “unknown” is the worst possible answer!all systems with RPC-style interaction, with remote stateas you partition state, more places where this can happencoding this is a mess – have infra help you
  35. constraints, freedoms of: data access, RPC, memory/process model. your public APIs.Constraints define what happen when you scalewe underestimated the weight/cost of this, and didn’t invest enough early in engineering solutionsimplications can’t be completely hidden from app; rely on infrayour core competency, differentiator
  36. motivating designconstantly looking for ways to push this into the infrastructures.t.devs don’t have to worry about scale, throughput, reliability, correctness – our differentiator
  37. good read because:-short, with lots of pictures; appear intelligent without having to read a library- covers fundamental issues in large-scale, reliable, distributed systemsweakened ACIDPP Wars Eric Jackson, beginnings, war stories