SlideShare a Scribd company logo
1 of 20
Download to read offline
Phil Leonard / Sander Mak
Scalable Application Development
@phillyleonard @sander_mak
2 | Confidential | 07 November
2018
The Picnic Application Landscape1
Observability2
Lessons Learned3
Agenda
3 | Confidential | 07 November
2018
Bring your questions!
menti.com
code: 91 76 42
4 | Confidential | 07 November
2018
The Picnic Application Landscape1
Observability2
Lessons Learned3
Agenda
5 | Confidential | 07 November
2018
Services
The Picnic Application Landscape
Storefront
Stock
Orders
Catalog
Finance
...
...
6 | Confidential | 07 November
2018
Tech Stack
The Picnic Application Landscape
Services
▪ Java 11
▪ Spring Boot
▪ WebFlux/RxJava
1
Platform3
Data2
▪ MongoDB (Atlas)
▪ Postgres (Amazon RDS)
▪ RabbitMQ (CloudAMQP)
▪ AWS
▪ Kubernetes (EKS)
7 | Confidential | 07 November
2018
The Picnic Application Landscape1
Observability2
Lessons Learned3
Agenda
8 | Confidential | 07 November
2018
Monitoring vs Observability: what is the difference?
Observability
Monitoring is the tool,
observability is the measure.
9 | Confidential | 07 November
2018
Logs, Traces and Metrics.
3 Pillars of Observability
Logs, metrics, and traces are the sources of information that
make systems more observable.
Scalyr
TracesLogs Metrics
10 | Confidential | 07 November
2018
SLF4J for Metrics
Micrometer
GrafanaPrometheus
11 | Confidential | 07 November
2018
Increasing visibility and therefore observability
Micrometer Instrumentation
● Apache HTTP client connection pools
● Mongo client connection pools
● Postgres connection pools
● Reactive schedulers
● jOOQ instrumentation
Where is my bottleneck? Homogeneous service instrumentation:
Picnic application domain specific metrics:
● Service KPIs
● Service health
12 | Confidential | 07 November
2018
13 | Confidential | 07 November
2018
The Picnic Application Landscape1
Observability2
Lessons Learned3
Agenda
14 | Confidential | 07 November
2018
Slow, but not slow?
Internal HTTP Service Calls
✅ ✅
Hypothesis: resource contention on
HttpClient connection pool?
Similar issue with Mongo connection pool
15 | Confidential | 07 November
2018
The best HTTP call is the one you never make
Reducing Service Dependencies
●
● Finding duplicate calls during request lifecycle
✅ ✅ ✅
?
● Listening to events rather than calling for
information
● Caching results
16 | Confidential | 07 November
2018
Thundering herd problem
Caching
● In-flight caching
● Pre-loaded/polling caches
17 | Confidential | 07 November
2018
MongoDB: Approaching Physical Limits
Peak load of 40k queries per second
18 | Confidential | 07 November
2018
Solutions
MongoDB: Optimisations
○ Read from secondaries, where you can.
○ Reduce bytes on the wire, .projection() and don’t
always read-your-writes
○ Splitting into service-based Mongo clusters.
Mongomirror
● 1.5 TB+* data mirrored,
● 9 new clusters,
● and two late night
migrations later....
* uncompressed
19 | Confidential | 07 November
2018
MongoDB: Non Paintbrush Style Optimisations
20 | Confidential | 07 November
2018
Building the best milkman on
earth serving millions of families
Climbing a mountain
One step at a time
https://join.picnic.app

More Related Content

What's hot

TiDB + Mobike by Kevin Xu (@kevinsxu)
TiDB + Mobike by Kevin Xu (@kevinsxu)TiDB + Mobike by Kevin Xu (@kevinsxu)
TiDB + Mobike by Kevin Xu (@kevinsxu)Kevin Xu
 
[WSO2Con USA 2018] Microservices, Containers, and Beyond
[WSO2Con USA 2018] Microservices, Containers, and Beyond[WSO2Con USA 2018] Microservices, Containers, and Beyond
[WSO2Con USA 2018] Microservices, Containers, and BeyondWSO2
 
Artik cloud deview 2016
Artik cloud   deview 2016Artik cloud   deview 2016
Artik cloud deview 2016NAVER D2
 
Iot data aggrigation
Iot data aggrigationIot data aggrigation
Iot data aggrigationdokechin
 
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021InfluxData
 
Kafka and Kafka Streams in the Global Schibsted Data Platform
Kafka and Kafka Streams in the Global Schibsted Data PlatformKafka and Kafka Streams in the Global Schibsted Data Platform
Kafka and Kafka Streams in the Global Schibsted Data PlatformFredrik Vraalsen
 
Combinación de logs, métricas y rastreos para observabilidad unificada
Combinación de logs, métricas y rastreos para observabilidad unificadaCombinación de logs, métricas y rastreos para observabilidad unificada
Combinación de logs, métricas y rastreos para observabilidad unificadaElasticsearch
 
Google's Infrastructure and Specific IoT Services
Google's Infrastructure and Specific IoT ServicesGoogle's Infrastructure and Specific IoT Services
Google's Infrastructure and Specific IoT ServicesIntel® Software
 
How to Gain Visibility into Containers, VM’s and Multi-Cloud Environments Usi...
How to Gain Visibility into Containers, VM’s and Multi-Cloud Environments Usi...How to Gain Visibility into Containers, VM’s and Multi-Cloud Environments Usi...
How to Gain Visibility into Containers, VM’s and Multi-Cloud Environments Usi...InfluxData
 
Quick Intro to Google Cloud Technologies
Quick Intro to Google Cloud TechnologiesQuick Intro to Google Cloud Technologies
Quick Intro to Google Cloud TechnologiesChris Schalk
 
Powering Postbank Group’s Data-driven Strategy
Powering Postbank Group’s Data-driven Strategy Powering Postbank Group’s Data-driven Strategy
Powering Postbank Group’s Data-driven Strategy Elasticsearch
 
Bringing Streaming Data To The Masses: Lowering The “Cost Of Admission” For Y...
Bringing Streaming Data To The Masses: Lowering The “Cost Of Admission” For Y...Bringing Streaming Data To The Masses: Lowering The “Cost Of Admission” For Y...
Bringing Streaming Data To The Masses: Lowering The “Cost Of Admission” For Y...confluent
 
Data Lessons Learned at Scale - Big Data DC
Data Lessons Learned at Scale - Big Data DCData Lessons Learned at Scale - Big Data DC
Data Lessons Learned at Scale - Big Data DCCharlie Reverte
 
SnapLogic Live: IoT Integration
SnapLogic Live: IoT IntegrationSnapLogic Live: IoT Integration
SnapLogic Live: IoT IntegrationSnapLogic
 
Timothy Spann [StreamNative] | Using FLaNK with InfluxDB for EdgeAI IoT at Sc...
Timothy Spann [StreamNative] | Using FLaNK with InfluxDB for EdgeAI IoT at Sc...Timothy Spann [StreamNative] | Using FLaNK with InfluxDB for EdgeAI IoT at Sc...
Timothy Spann [StreamNative] | Using FLaNK with InfluxDB for EdgeAI IoT at Sc...InfluxData
 
Digital Transformation in Healthcare with Kafka—Building a Low Latency Data P...
Digital Transformation in Healthcare with Kafka—Building a Low Latency Data P...Digital Transformation in Healthcare with Kafka—Building a Low Latency Data P...
Digital Transformation in Healthcare with Kafka—Building a Low Latency Data P...confluent
 
Sharing our best secrets: Design a distributed system from scratch
Sharing our best secrets: Design a distributed system from scratchSharing our best secrets: Design a distributed system from scratch
Sharing our best secrets: Design a distributed system from scratchAdelina Simion
 
What can the cloud do for you?
What can the cloud do for you?What can the cloud do for you?
What can the cloud do for you?Mind the Byte
 
RFX - Full-Stack Technology for Real-time Big Data
RFX - Full-Stack Technology for Real-time Big DataRFX - Full-Stack Technology for Real-time Big Data
RFX - Full-Stack Technology for Real-time Big DataTrieu Nguyen
 

What's hot (20)

TiDB + Mobike by Kevin Xu (@kevinsxu)
TiDB + Mobike by Kevin Xu (@kevinsxu)TiDB + Mobike by Kevin Xu (@kevinsxu)
TiDB + Mobike by Kevin Xu (@kevinsxu)
 
[WSO2Con USA 2018] Microservices, Containers, and Beyond
[WSO2Con USA 2018] Microservices, Containers, and Beyond[WSO2Con USA 2018] Microservices, Containers, and Beyond
[WSO2Con USA 2018] Microservices, Containers, and Beyond
 
Artik cloud deview 2016
Artik cloud   deview 2016Artik cloud   deview 2016
Artik cloud deview 2016
 
Iot data aggrigation
Iot data aggrigationIot data aggrigation
Iot data aggrigation
 
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021
Alex Nauda [Nobl9] | How Not to Build an SLO Platform | InfluxDays NA 2021
 
Kafka and Kafka Streams in the Global Schibsted Data Platform
Kafka and Kafka Streams in the Global Schibsted Data PlatformKafka and Kafka Streams in the Global Schibsted Data Platform
Kafka and Kafka Streams in the Global Schibsted Data Platform
 
Combinación de logs, métricas y rastreos para observabilidad unificada
Combinación de logs, métricas y rastreos para observabilidad unificadaCombinación de logs, métricas y rastreos para observabilidad unificada
Combinación de logs, métricas y rastreos para observabilidad unificada
 
Google's Infrastructure and Specific IoT Services
Google's Infrastructure and Specific IoT ServicesGoogle's Infrastructure and Specific IoT Services
Google's Infrastructure and Specific IoT Services
 
How to Gain Visibility into Containers, VM’s and Multi-Cloud Environments Usi...
How to Gain Visibility into Containers, VM’s and Multi-Cloud Environments Usi...How to Gain Visibility into Containers, VM’s and Multi-Cloud Environments Usi...
How to Gain Visibility into Containers, VM’s and Multi-Cloud Environments Usi...
 
Quick Intro to Google Cloud Technologies
Quick Intro to Google Cloud TechnologiesQuick Intro to Google Cloud Technologies
Quick Intro to Google Cloud Technologies
 
Powering Postbank Group’s Data-driven Strategy
Powering Postbank Group’s Data-driven Strategy Powering Postbank Group’s Data-driven Strategy
Powering Postbank Group’s Data-driven Strategy
 
Bigquery 101
Bigquery 101Bigquery 101
Bigquery 101
 
Bringing Streaming Data To The Masses: Lowering The “Cost Of Admission” For Y...
Bringing Streaming Data To The Masses: Lowering The “Cost Of Admission” For Y...Bringing Streaming Data To The Masses: Lowering The “Cost Of Admission” For Y...
Bringing Streaming Data To The Masses: Lowering The “Cost Of Admission” For Y...
 
Data Lessons Learned at Scale - Big Data DC
Data Lessons Learned at Scale - Big Data DCData Lessons Learned at Scale - Big Data DC
Data Lessons Learned at Scale - Big Data DC
 
SnapLogic Live: IoT Integration
SnapLogic Live: IoT IntegrationSnapLogic Live: IoT Integration
SnapLogic Live: IoT Integration
 
Timothy Spann [StreamNative] | Using FLaNK with InfluxDB for EdgeAI IoT at Sc...
Timothy Spann [StreamNative] | Using FLaNK with InfluxDB for EdgeAI IoT at Sc...Timothy Spann [StreamNative] | Using FLaNK with InfluxDB for EdgeAI IoT at Sc...
Timothy Spann [StreamNative] | Using FLaNK with InfluxDB for EdgeAI IoT at Sc...
 
Digital Transformation in Healthcare with Kafka—Building a Low Latency Data P...
Digital Transformation in Healthcare with Kafka—Building a Low Latency Data P...Digital Transformation in Healthcare with Kafka—Building a Low Latency Data P...
Digital Transformation in Healthcare with Kafka—Building a Low Latency Data P...
 
Sharing our best secrets: Design a distributed system from scratch
Sharing our best secrets: Design a distributed system from scratchSharing our best secrets: Design a distributed system from scratch
Sharing our best secrets: Design a distributed system from scratch
 
What can the cloud do for you?
What can the cloud do for you?What can the cloud do for you?
What can the cloud do for you?
 
RFX - Full-Stack Technology for Real-time Big Data
RFX - Full-Stack Technology for Real-time Big DataRFX - Full-Stack Technology for Real-time Big Data
RFX - Full-Stack Technology for Real-time Big Data
 

Similar to Scalable Application Development @ Picnic

OSMC 2018 | Monitoring Distributed Systems by Philip Griesbacher
OSMC 2018 | Monitoring Distributed Systems by Philip GriesbacherOSMC 2018 | Monitoring Distributed Systems by Philip Griesbacher
OSMC 2018 | Monitoring Distributed Systems by Philip GriesbacherNETWAYS
 
JCIS 2022 - Smart LAMA API: Automated Capacity Analysis of Limitation-Aware M...
JCIS 2022 - Smart LAMA API: Automated Capacity Analysis of Limitation-Aware M...JCIS 2022 - Smart LAMA API: Automated Capacity Analysis of Limitation-Aware M...
JCIS 2022 - Smart LAMA API: Automated Capacity Analysis of Limitation-Aware M...Rafael Apellidos
 
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...Capgemini
 
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...Capgemini
 
What's New In Neo4j 3.4 & Bloom Update
What's New In Neo4j 3.4 & Bloom UpdateWhat's New In Neo4j 3.4 & Bloom Update
What's New In Neo4j 3.4 & Bloom UpdateNeo4j
 
MongoDB World 2019: Unleash the Power of the MongoDB Aggregation Framework
MongoDB World 2019: Unleash the Power of the MongoDB Aggregation FrameworkMongoDB World 2019: Unleash the Power of the MongoDB Aggregation Framework
MongoDB World 2019: Unleash the Power of the MongoDB Aggregation FrameworkMongoDB
 
Reducing Cost of Production ML: Feature Engineering Case Study
Reducing Cost of Production ML: Feature Engineering Case StudyReducing Cost of Production ML: Feature Engineering Case Study
Reducing Cost of Production ML: Feature Engineering Case StudyVenkata Pingali
 
MapR Edge : Act Locally Learn Globally
MapR Edge : Act Locally Learn GloballyMapR Edge : Act Locally Learn Globally
MapR Edge : Act Locally Learn Globallyridhav
 
Designing data pipelines for analytics and machine learning in industrial set...
Designing data pipelines for analytics and machine learning in industrial set...Designing data pipelines for analytics and machine learning in industrial set...
Designing data pipelines for analytics and machine learning in industrial set...DataWorks Summit
 
Glowing bear
Glowing bear Glowing bear
Glowing bear thehyve
 
Early adopter group and closing of webinar - João Fernandes (CERN)
Early adopter group and closing of webinar - João Fernandes (CERN)Early adopter group and closing of webinar - João Fernandes (CERN)
Early adopter group and closing of webinar - João Fernandes (CERN)Helix Nebula The Science Cloud
 
MongoDB HA - what can go wrong
MongoDB HA - what can go wrongMongoDB HA - what can go wrong
MongoDB HA - what can go wrongIgor Donchovski
 
Stream processing for the practitioner: Blueprints for common stream processi...
Stream processing for the practitioner: Blueprints for common stream processi...Stream processing for the practitioner: Blueprints for common stream processi...
Stream processing for the practitioner: Blueprints for common stream processi...Aljoscha Krettek
 
Kapacitor Manager
Kapacitor ManagerKapacitor Manager
Kapacitor ManagerInfluxData
 
GECON 2022 - Semi-Automated Capacity Analysis of Limitation-Aware Microservic...
GECON 2022 - Semi-Automated Capacity Analysis of Limitation-Aware Microservic...GECON 2022 - Semi-Automated Capacity Analysis of Limitation-Aware Microservic...
GECON 2022 - Semi-Automated Capacity Analysis of Limitation-Aware Microservic...Rafael Apellidos
 
Iot & digital services platform in skiing station cwin18_toulouse
Iot & digital services platform in skiing station cwin18_toulouseIot & digital services platform in skiing station cwin18_toulouse
Iot & digital services platform in skiing station cwin18_toulouseCapgemini
 

Similar to Scalable Application Development @ Picnic (20)

OSMC 2018 | Monitoring Distributed Systems by Philip Griesbacher
OSMC 2018 | Monitoring Distributed Systems by Philip GriesbacherOSMC 2018 | Monitoring Distributed Systems by Philip Griesbacher
OSMC 2018 | Monitoring Distributed Systems by Philip Griesbacher
 
JCIS 2022 - Smart LAMA API: Automated Capacity Analysis of Limitation-Aware M...
JCIS 2022 - Smart LAMA API: Automated Capacity Analysis of Limitation-Aware M...JCIS 2022 - Smart LAMA API: Automated Capacity Analysis of Limitation-Aware M...
JCIS 2022 - Smart LAMA API: Automated Capacity Analysis of Limitation-Aware M...
 
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...
 
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...
Infrastructure predictive monitoring with itoa jean louis baudoin, capgemini-...
 
What's New In Neo4j 3.4 & Bloom Update
What's New In Neo4j 3.4 & Bloom UpdateWhat's New In Neo4j 3.4 & Bloom Update
What's New In Neo4j 3.4 & Bloom Update
 
MongoDB World 2019: Unleash the Power of the MongoDB Aggregation Framework
MongoDB World 2019: Unleash the Power of the MongoDB Aggregation FrameworkMongoDB World 2019: Unleash the Power of the MongoDB Aggregation Framework
MongoDB World 2019: Unleash the Power of the MongoDB Aggregation Framework
 
Reducing Cost of Production ML: Feature Engineering Case Study
Reducing Cost of Production ML: Feature Engineering Case StudyReducing Cost of Production ML: Feature Engineering Case Study
Reducing Cost of Production ML: Feature Engineering Case Study
 
Final ppt
Final pptFinal ppt
Final ppt
 
MapR Edge : Act Locally Learn Globally
MapR Edge : Act Locally Learn GloballyMapR Edge : Act Locally Learn Globally
MapR Edge : Act Locally Learn Globally
 
Designing data pipelines for analytics and machine learning in industrial set...
Designing data pipelines for analytics and machine learning in industrial set...Designing data pipelines for analytics and machine learning in industrial set...
Designing data pipelines for analytics and machine learning in industrial set...
 
Glowing bear
Glowing bear Glowing bear
Glowing bear
 
Early adopter group and closing of webinar - João Fernandes (CERN)
Early adopter group and closing of webinar - João Fernandes (CERN)Early adopter group and closing of webinar - João Fernandes (CERN)
Early adopter group and closing of webinar - João Fernandes (CERN)
 
Mikrotik firewall filter
Mikrotik firewall filterMikrotik firewall filter
Mikrotik firewall filter
 
MongoDB HA - what can go wrong
MongoDB HA - what can go wrongMongoDB HA - what can go wrong
MongoDB HA - what can go wrong
 
Stream processing for the practitioner: Blueprints for common stream processi...
Stream processing for the practitioner: Blueprints for common stream processi...Stream processing for the practitioner: Blueprints for common stream processi...
Stream processing for the practitioner: Blueprints for common stream processi...
 
Kapacitor Manager
Kapacitor ManagerKapacitor Manager
Kapacitor Manager
 
GECON 2022 - Semi-Automated Capacity Analysis of Limitation-Aware Microservic...
GECON 2022 - Semi-Automated Capacity Analysis of Limitation-Aware Microservic...GECON 2022 - Semi-Automated Capacity Analysis of Limitation-Aware Microservic...
GECON 2022 - Semi-Automated Capacity Analysis of Limitation-Aware Microservic...
 
Industrialiser spark
Industrialiser sparkIndustrialiser spark
Industrialiser spark
 
CAP spots oddities in your log data
CAP spots oddities in your log dataCAP spots oddities in your log data
CAP spots oddities in your log data
 
Iot & digital services platform in skiing station cwin18_toulouse
Iot & digital services platform in skiing station cwin18_toulouseIot & digital services platform in skiing station cwin18_toulouse
Iot & digital services platform in skiing station cwin18_toulouse
 

More from Sander Mak (@Sander_Mak)

TypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painTypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painSander Mak (@Sander_Mak)
 
The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)Sander Mak (@Sander_Mak)
 
Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?Sander Mak (@Sander_Mak)
 
Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)Sander Mak (@Sander_Mak)
 

More from Sander Mak (@Sander_Mak) (20)

Coding Your Way to Java 13
Coding Your Way to Java 13Coding Your Way to Java 13
Coding Your Way to Java 13
 
Coding Your Way to Java 12
Coding Your Way to Java 12Coding Your Way to Java 12
Coding Your Way to Java 12
 
Java Modularity: the Year After
Java Modularity: the Year AfterJava Modularity: the Year After
Java Modularity: the Year After
 
Desiging for Modularity with Java 9
Desiging for Modularity with Java 9Desiging for Modularity with Java 9
Desiging for Modularity with Java 9
 
Modules or microservices?
Modules or microservices?Modules or microservices?
Modules or microservices?
 
Migrating to Java 9 Modules
Migrating to Java 9 ModulesMigrating to Java 9 Modules
Migrating to Java 9 Modules
 
Java 9 Modularity in Action
Java 9 Modularity in ActionJava 9 Modularity in Action
Java 9 Modularity in Action
 
Java modularity: life after Java 9
Java modularity: life after Java 9Java modularity: life after Java 9
Java modularity: life after Java 9
 
Provisioning the IoT
Provisioning the IoTProvisioning the IoT
Provisioning the IoT
 
Event-sourced architectures with Akka
Event-sourced architectures with AkkaEvent-sourced architectures with Akka
Event-sourced architectures with Akka
 
TypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painTypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the pain
 
The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)
 
Modular JavaScript
Modular JavaScriptModular JavaScript
Modular JavaScript
 
Modularity in the Cloud
Modularity in the CloudModularity in the Cloud
Modularity in the Cloud
 
Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?
 
Scala & Lift (JEEConf 2012)
Scala & Lift (JEEConf 2012)Scala & Lift (JEEConf 2012)
Scala & Lift (JEEConf 2012)
 
Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)
 
Akka (BeJUG)
Akka (BeJUG)Akka (BeJUG)
Akka (BeJUG)
 
Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)
 
Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!
 

Recently uploaded

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
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...Neo4j
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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 AutomationSafe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
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 Takeoffsammart93
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 

Recently uploaded (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

Scalable Application Development @ Picnic

  • 1. Phil Leonard / Sander Mak Scalable Application Development @phillyleonard @sander_mak
  • 2. 2 | Confidential | 07 November 2018 The Picnic Application Landscape1 Observability2 Lessons Learned3 Agenda
  • 3. 3 | Confidential | 07 November 2018 Bring your questions! menti.com code: 91 76 42
  • 4. 4 | Confidential | 07 November 2018 The Picnic Application Landscape1 Observability2 Lessons Learned3 Agenda
  • 5. 5 | Confidential | 07 November 2018 Services The Picnic Application Landscape Storefront Stock Orders Catalog Finance ... ...
  • 6. 6 | Confidential | 07 November 2018 Tech Stack The Picnic Application Landscape Services ▪ Java 11 ▪ Spring Boot ▪ WebFlux/RxJava 1 Platform3 Data2 ▪ MongoDB (Atlas) ▪ Postgres (Amazon RDS) ▪ RabbitMQ (CloudAMQP) ▪ AWS ▪ Kubernetes (EKS)
  • 7. 7 | Confidential | 07 November 2018 The Picnic Application Landscape1 Observability2 Lessons Learned3 Agenda
  • 8. 8 | Confidential | 07 November 2018 Monitoring vs Observability: what is the difference? Observability Monitoring is the tool, observability is the measure.
  • 9. 9 | Confidential | 07 November 2018 Logs, Traces and Metrics. 3 Pillars of Observability Logs, metrics, and traces are the sources of information that make systems more observable. Scalyr TracesLogs Metrics
  • 10. 10 | Confidential | 07 November 2018 SLF4J for Metrics Micrometer GrafanaPrometheus
  • 11. 11 | Confidential | 07 November 2018 Increasing visibility and therefore observability Micrometer Instrumentation ● Apache HTTP client connection pools ● Mongo client connection pools ● Postgres connection pools ● Reactive schedulers ● jOOQ instrumentation Where is my bottleneck? Homogeneous service instrumentation: Picnic application domain specific metrics: ● Service KPIs ● Service health
  • 12. 12 | Confidential | 07 November 2018
  • 13. 13 | Confidential | 07 November 2018 The Picnic Application Landscape1 Observability2 Lessons Learned3 Agenda
  • 14. 14 | Confidential | 07 November 2018 Slow, but not slow? Internal HTTP Service Calls ✅ ✅ Hypothesis: resource contention on HttpClient connection pool? Similar issue with Mongo connection pool
  • 15. 15 | Confidential | 07 November 2018 The best HTTP call is the one you never make Reducing Service Dependencies ● ● Finding duplicate calls during request lifecycle ✅ ✅ ✅ ? ● Listening to events rather than calling for information ● Caching results
  • 16. 16 | Confidential | 07 November 2018 Thundering herd problem Caching ● In-flight caching ● Pre-loaded/polling caches
  • 17. 17 | Confidential | 07 November 2018 MongoDB: Approaching Physical Limits Peak load of 40k queries per second
  • 18. 18 | Confidential | 07 November 2018 Solutions MongoDB: Optimisations ○ Read from secondaries, where you can. ○ Reduce bytes on the wire, .projection() and don’t always read-your-writes ○ Splitting into service-based Mongo clusters. Mongomirror ● 1.5 TB+* data mirrored, ● 9 new clusters, ● and two late night migrations later.... * uncompressed
  • 19. 19 | Confidential | 07 November 2018 MongoDB: Non Paintbrush Style Optimisations
  • 20. 20 | Confidential | 07 November 2018 Building the best milkman on earth serving millions of families Climbing a mountain One step at a time https://join.picnic.app