Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Breaking down problems

Breaking down problems

When starting with microservice architectures a common question people ask is "how big should a service be?” While this is sometimes useful when considering the complexity of a system, it doesn’t capture the variety of use cases or problems systems may be solving — a service that selects emoji for push notifications will probably be simpler than one of the core services in a payment processor?

In this talk we’ll look at how Monzo approach problem solving, taking business ideas and breaking them down into small, simple, services which together build a system that is more than the sum of its parts.

mattheath

May 29, 2019
Tweet

More Decks by mattheath

Other Decks in Programming

Transcript

  1. LICENCE WITH RESTRICTIONS WE ARE HERE A UK banking licence

    is authorised by the PRA and regulated by the PRA and FCA1, allowing deposit- taking and balance sheet lending. Once granted, it allows firms to passport across Europe, accessing This is followed by a “mobilisation” phase during which final capital is raised and IT systems are completed, before launching to the public. We received a UK banking licence in August 2016! FEB 2015 JAN 2016 JAN 2017 MAR FEB FEB APR MAR MAR APR MAY JUN JUL MAY APR JUN MAY JUL JUN AUG JUL SEP AUG NOV SEP DEC NOV DEC PRE APPLICATION APPLICATION MOBILISATION LAUNCH LICENCE WITH RESTRICTIONS 50K MAX DEPOSIT WE ARE HERE A UK banking licence is authorised by the PRA and regulated by the PRA and FCA1, allowing deposit- taking and balance sheet lending. Once granted, it allows firms to passport across Europe, accessing This is followed by a “mobilisation” phase during which final capital is raised and IT systems are completed, before launching to the public. We received a UK banking licence in August 2016! JAN 2016 JAN 2017 MAR FEB FEB APR MAR MAR APR MAY JUN JUL MAY APR JUN MAY JUL JUN AUG JUL SEP AUG NOV SEP DEC NOV DEC E APPLICATION APPLICATION MOBILISATION LAUNCH LICENCE WITH RESTRICTIONS WE ARE HERE AUG
 2016 JAN
 2016 Feb
 2015 APR
 2017 A UK banking licence is authorised by the PRA and regulated by the PRA and FCA1, allowing deposit- taking and balance sheet lending. Once granted, it allows firms to passport across Europe, accessing This is followed by a “mobilisation” phase during which final capital is raised and IT systems are completed, before launching to the public. We received a UK banking licence in August 2016! FEB 2015 JAN 2016 JAN 2017 MAR FEB FEB APR MAR MAR APR MAY APR JUN MAY JUL JUN AUG JUL SEP AUG NOV SEP DEC NOV DEC PRE APPLICATION APPLICATION MOBILISATION LICENCE WITH RESTRICTIONS WE ARE HERE
  2. Why do we break down problems? Manage risk , Scale

    organisations Use the best tools for the job
  3. Why do we break down problems? Manage risk , Scale

    organisations Use the best tools for the job
  4. Why do we break down problems? Manage risk Use the

    best tools for the job , Scale organisations
  5. Why do we break down problems? Manage risk Use the

    best tools for the job , Scale organisations
  6. Split by domain users transactions faster payments card payments cards

    accounts addresses profiles feature flags points pots direct debits
  7. Split by responsibility card management customer
 signup clearing
 processing reconciliation

    pots accounts authentication authorisation bank
 statements message signing
  8. API

  9. API

  10. API Service API Service API Service API Service API Service

    API Service API Service API Service Edge Gateway
  11. Isolate failure Make changes small, make them often Ship it,

    and iterate , Scale teams and organisations
  12. Service A Service B Load Balancer Edge Gateway API Service

    Responsible for external interface Responsible for domain logic Responsible for routing
  13. Account
 Service Load Balancer Edge Gateway Account
 API Account
 Number


    Service IBAN
 Service Account service responsibility remains unchanged, even as overall system complexity increases
  14. Account
 Service Load Balancer Edge Gateway Account
 API Account
 Number


    Service IBAN
 Service Additional, simple, services solve related but separate problems
  15. Account
 Service Load Balancer Edge Gateway Account
 API Account
 Number


    Service IBAN
 Service Euro
 Payment
 Services 5
  16. Account
 Service Account
 Number
 Service IBAN
 Service Euro
 Payment
 Services

    5 Decoupling more specialised behaviour keeps services simple 6
  17. Account
 Service Account
 Number
 Service IBAN
 Service Euro
 Payment
 Services

    5 Faster
 Payment
 Services 6 Isolating failure along domain boundaries improves availability
  18. 8 Identify areas of complexity and debt ⏱ Make time

    to improve these Teams move faster as a result
  19. API Service Service A Service B Load Balancer Edge Gateway

    Service D Service D Service C Event based communication decouples services, lets us build reliable pipelines, and helps isolate failure
  20. Simple systems are more reliable Small systems are faster to

    iterate Failure can be isolated and constrained
  21. Standardisation makes everything easier Onboard new people quickly People feel

    empowered and productive Build reliable systems, faster.