SlideShare a Scribd company logo
Aviran Mordo
Head of Back-end Engineering
@aviranm
linkedin.com/in/aviran
aviransplace.com
Scaling with
Microservices Architecture
and Multi-cloud platforms
Scaling wix with microservices architecture devoxx London 2015
Wix in Numbers
Over 66M users
Static storage is >2PB of data
3 data centers + 3 clouds (Google, Amazon,Azure)
2B HTTP requests/day
1000 people work atWix
Initial Architecture
Built for fast development
Stateful login (Tomcat session), Ehcache, file uploads
No consideration for performance, scalability and testing
Intended for short-term use
Tomcat, Hibernate, custom web framework
Lighttpd
(file serving) MySQL
DB
Wix
(Tomcat)
The Monolithic Giant
One monolithic server that handled everything
Dependency between features
Changes in unrelated areas of the system caused deployment of
the whole system
Failure in unrelated areas will cause system wide downtime
Breaking the System Apart
Scaling wix with microservices architecture devoxx London 2015
Concerns and SLA
DataValidation
Security / Authentication
Data consistency
Lots of data
Edit websites
High availability
High performance
Lots of static files
Very high traffic volume
Viewport optimization
Long tail (immutable)
Serving Media
High availability
High performance
High traffic volume
Long tail (mutable)
View sites, created by
Wix editor
Wix Segmentation
1. Editor Segment 3. Public Segment2. Media Segment
Networking
HTML
Editor
Flash
Editor
MSM
Private
Media
Public
Media
Editor Segment Public Segment
Premium
Services
eCommerse
List DB
App
Builder
App
Store
App
Market
Dashboard
Statics/me
dia
Mailer
TimeZone
Public
HTML API
Public API
(Flash)
MSP
Public
Server
HTML
Renderer
HTML SEO
Renderer
Flash
Renderer
Flash SEO
Renderer
Sitemap
Renderer
Robots.txt
Renderer
User
Server
Template
Viewer
ContactsHUB
Activit
y
Site
Members
Provided
Mailing
Service
Comments
Snapshoter
User Pref
Feed Me
Shout-out Hotels
PETRI
Site Pref
Dist LoggerSlicer
eCom
Renderer
eCom Cart
eCom
Checkout
eCom
Catalog
eCom
Orders
Payment
Facade
Account
Info
HTML API
HTML
Embeder
BlogMobile
Microservices Guidelines
Each service has its own DB schema (if one is needed)
Only one service should write to a specific DB table(s)
There may be additional read-only services that directly
accesses the DB (for performance reasons)
Services are stateless
No DB transactions
Cache is not a building block, but an optimization
It is all about
Scaling wix with microservices architecture devoxx London 2015
Microservices Tradeoffs
Each service has its own DB schema (if one is needed)
Gain - Easy to scale microservices based on service level concerns
Tradeoff – system complexity, performance
Only one service should write to a specific DB table(s)
Gain - Decoupling architecture – faster development
Tradeoff – system complexity / performance
May have additional read-only services that accesses the DB
Gain - Performance gain
Tradeoff - coupling
Services are stateless
Gain - Easy to scale out (just add more servers)
Tradeoff - performance / consistency
No DB transactions
Gain - Better DB performance, easier to scale
Tradeoff - system complexity
1. Editor Segment
Editor Server
Immutable JSON pages (~3M / day)
Site revisions
Active – standby MySQL cross datacenters
Editor Server
MySQL
Active
Sites
MySQL
Archive
Scaling wix with microservices architecture devoxx London 2015
Protect The Data
DB outage with fast recovery = replication
Data poisoning/corruption = revisions / backup
Make the data available at all times = data distribution to multiple
locations / providers
Browser
Editor
Server
GCS
MySQL
Active
Sites
MySQL
Archive
Saving Editor Data
WixMedia
(Amazon)
WixMedia
(Google)
Save Page(s)
200 OK
Upload
Save Page
DC replication
Notify
MySQL
Archive
MySQL
Active
Sites
S3
WixMedia
(DC-1)
Browser
Editor
Server
GCS
MySQL
Active
Sites
MySQL
Archive
WixMedia
(Amazon)
WixMedia
(Google)
Save Page(s)
200 OK
Upload
Save Page
DC replication
Notify
MySQL
Archive
MySQL
Active
Sites
S3
WixMedia
(DC-1)
Self Healing Process
No DB Transactions
Save each page (JSON) as an atomic operation
Page ID is a content based hash (immutable/idempotent)
Finalize transaction by sending site header (list of pages)
Can generate orphaned pages, not a problem in practice
2. Media Segment (WixMP)
Wix Media Platform (WixMP)
Eventual consistent distributed file system
(2PB user media files)
Dynamic media processing
Multi datacenter aware
Automatic fallback cross DC
Run on commodity servers & cloud
T
Google
Cloud
Prospero – Wix Media Manager
get image.jpg
First
fallback
Second
fallback
If not in
CDN
Amazon
x36
T
x36
T
x32
Austin
CDN
3. Public Segment
Public Segment Roles
Routing (resolve URLs)
Dispatching (to a renderer)
Rendering (HTML,XML,TXT)
Public
Server
HTML
Renderer
HTML SEO
Renderer
Flash
Renderer
Sitemap
Renderer
Robots.txt
Renderer
www.example.com
Flash SEO
Renderer
Public SLA
Our goal: 99% response time <100ms at peak traffic
Publish Site
Publish site header (a map of pages for a site)
Publish routing table
Publish site header / routes (CQRS)
Editor Segment Public Segment
Built For Speed
Minimize out-of-process hops (2 DB, 1 RPC)
Lookup tables are cached in memory, updated every few minutes
Denormalized data – optimize for read by primary key (MySQL)
Minimize business logic
How a Page Gets Rendered
Bootstrap HTML template that contains only data
Only JavaScript imports
JSON data (site-header + dynamic data)
No “real” HTML view
Offload rendering work to the browser
The average Intel Core
i750 can push up to 7
GFLOPS without
overclocking
Why JSON?
Easy to parse in JavaScript and Java/Scala
Fairly compact text format
Highly compressible (5:1 even for small payloads)
Easy to fix rendering bugs and cross browsers issues (just
deploy a new code)
Minimum Number of Public Servers
Needed to Serve 66M Sites
4
Public SLA
Be Available 99.999%
Serving a Site – Sunny Day
Archive
CDN WixMP
Browser
http://example.wix.com
Store HTML
to cache
HTTP
Request
Notify
site view
LB
Public
Renderer
HTML
Resources / Media
HTTP
Request
Serving a Site – DC Lost
Archive
CDN WixMP
Browser
http://example.wix.com
LB
Public
Renderer
LB
Public
Renderer
Change DNS
HTTP
Request
Serving a Site – Public Lost
Archive
Browser
http://example.wix.com
LB
Public
Renderer
Get
Cached HTML
Version
HTML
HTTP
Request
LB
Public
Renderer
Fallback to 2nd
DC
Living in the Browser
CDN WixMP
Browser
http://example.wix.com
LB
Public
Renderer
Editor Pages
Fallback
JSON /
Media
HTML
HTTP
Request Fallback
Summary
Identify concerns and SLA for different parts of the system
Build redundancy in critical path (for availability)
De-normalize data (for performance)
Minimize out-of-process hops (for performance)
Take advantage of client’s CPU power
Scaling wix with microservices architecture devoxx London 2015
Q&A
@aviranm
linkedin.com/in/aviran
aviransplace.com
http://engineering.wix.com
http://goo.gl/t626jU
@WixEng
Aviran Mordo
Head of Back-end Engineering

More Related Content

PPTX
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
PPTX
Scaling wix with microservices architecture jax london-2015
PPTX
Wix Architecture at Scale - QCon London 2014
PPTX
Mircoservices, dev ops and Engineering best practices at Wix.com
PPTX
Scaling wix to over 50 m users
PPTX
DOs and DONTs on the way to 10M users
PPTX
Scaling wix.com to 100 million users
PPTX
Scaling wix with microservices and multi cloud - 2015
Scaling Wix with microservices architecture and multi-cloud platforms - Reve...
Scaling wix with microservices architecture jax london-2015
Wix Architecture at Scale - QCon London 2014
Mircoservices, dev ops and Engineering best practices at Wix.com
Scaling wix to over 50 m users
DOs and DONTs on the way to 10M users
Scaling wix.com to 100 million users
Scaling wix with microservices and multi cloud - 2015

What's hot (20)

PPTX
Scaling up to 30 m users
PPTX
Scaling up to 30M users - The Wix Story
PPTX
Scaling wix to over 70 m users
PPTX
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
PPTX
Cnam cours azure iaas
PPTX
Microsoft Azure Hybrid Cloud - Getting Started For Techies
PPTX
Cnam cours azure cloud services
PPTX
Cnam azure 2015 storage
PDF
Cnam azure ze cloud resource manager
PPTX
Aws 12 Month Free Tier for Web Designers and Developers
PPTX
Becoming the master of disaster... with asr
PPTX
Microsoft cloud stack
PPTX
Cnam cours azure web sites
PDF
Java in the Cloud : PaaS Platforms in Comparison
PPTX
How to Build High Performance : WordPress
PPTX
Build cloud os in one day belgium
PDF
Best Practices for couchDB developers on Microsoft Azure
PPTX
Azure in Developer Perspective
PPTX
Moving to the Cloud: AWS, Zend, RightScale
PDF
Experiences using CouchDB inside Microsoft's Azure team
Scaling up to 30 m users
Scaling up to 30M users - The Wix Story
Scaling wix to over 70 m users
ECMDay2015 - Kent Agerlund – Configuration Manager 2012 – A Site Review
Cnam cours azure iaas
Microsoft Azure Hybrid Cloud - Getting Started For Techies
Cnam cours azure cloud services
Cnam azure 2015 storage
Cnam azure ze cloud resource manager
Aws 12 Month Free Tier for Web Designers and Developers
Becoming the master of disaster... with asr
Microsoft cloud stack
Cnam cours azure web sites
Java in the Cloud : PaaS Platforms in Comparison
How to Build High Performance : WordPress
Build cloud os in one day belgium
Best Practices for couchDB developers on Microsoft Azure
Azure in Developer Perspective
Moving to the Cloud: AWS, Zend, RightScale
Experiences using CouchDB inside Microsoft's Azure team
Ad

Viewers also liked (14)

PDF
Building reliable systems from unreliable components
PPTX
Wix.com Back-end Engineering Guild Manifesto
PPTX
Microservices - it's déjà vu all over again
PDF
Microservices and Redis #redisconf Keynote
PPTX
Scaling Wix engineering
PDF
From object oriented to functional domain modeling
PPTX
Introduction to Kafka with Spring Integration
PDF
Introduction To Functional Reactive Programming Poznan
PDF
Reactive Programming for a demanding world: building event-driven and respons...
PDF
Microservices - java ee vs spring boot and spring cloud
PPTX
Spring integration with the Java DSL
PDF
Microservice Architecture with CQRS and Event Sourcing
PDF
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
PDF
Integration Patterns and Anti-Patterns for Microservices Architectures
Building reliable systems from unreliable components
Wix.com Back-end Engineering Guild Manifesto
Microservices - it's déjà vu all over again
Microservices and Redis #redisconf Keynote
Scaling Wix engineering
From object oriented to functional domain modeling
Introduction to Kafka with Spring Integration
Introduction To Functional Reactive Programming Poznan
Reactive Programming for a demanding world: building event-driven and respons...
Microservices - java ee vs spring boot and spring cloud
Spring integration with the Java DSL
Microservice Architecture with CQRS and Event Sourcing
Handling Eventual Consistency in JVM Microservices with Event Sourcing (javao...
Integration Patterns and Anti-Patterns for Microservices Architectures
Ad

Similar to Scaling wix with microservices architecture devoxx London 2015 (20)

PPTX
From 0 to 60 million users scaling with microservices and multi cloud archite...
PPTX
High performance web sites with multilevel caching
PDF
The Microservices and DevOps Journey
PPTX
Concurrency at Scale: Evolution to Micro-Services
PPS
Web20expo Scalable Web Arch
PPS
Web20expo Scalable Web Arch
PPS
Web20expo Scalable Web Arch
PPTX
Architecting extremelylarge scale web applications
ODP
Scalable Architecture 101
PPTX
Microservices Architecture for Content Management Systems using AWS Lambda an...
PDF
Writing microservices in java java one-2015-10-28
PPS
Scalable Web Architectures - Common Patterns & Approaches
PPS
Scalable Web Arch
PPS
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
PDF
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
PDF
Writing microservices in Java -- Chicago-2015-11-10
ODP
MNPHP Scalable Architecture 101 - Feb 3 2011
PPTX
Microservices and docker
PDF
Microservices for Architects - Atlanta 2018-03-28
PDF
Refacoring vs Rewriting WixStores
From 0 to 60 million users scaling with microservices and multi cloud archite...
High performance web sites with multilevel caching
The Microservices and DevOps Journey
Concurrency at Scale: Evolution to Micro-Services
Web20expo Scalable Web Arch
Web20expo Scalable Web Arch
Web20expo Scalable Web Arch
Architecting extremelylarge scale web applications
Scalable Architecture 101
Microservices Architecture for Content Management Systems using AWS Lambda an...
Writing microservices in java java one-2015-10-28
Scalable Web Architectures - Common Patterns & Approaches
Scalable Web Arch
Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC
Scalable Architecture on Amazon AWS Cloud - Indicthreads cloud computing conf...
Writing microservices in Java -- Chicago-2015-11-10
MNPHP Scalable Architecture 101 - Feb 3 2011
Microservices and docker
Microservices for Architects - Atlanta 2018-03-28
Refacoring vs Rewriting WixStores

More from Aviran Mordo (12)

PDF
Platform as a Runtime - PaaR QCON 2024 - Final
PPTX
Scaling Engineering by Hacking Conway’s Law - Geecon,2022
PDF
Arrested by the cap devoxx uk 2018
PPTX
Road to Continuous Delivery - Wix.com
PPTX
Advanced A/B Testing - Jax London 2015
PPTX
The Art of A/B Testing
PPTX
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014
PPTX
Scaling r&d org while maintaining quality
PPTX
Wix Dev-Centric Culture And Continuous Delivery
PPTX
Introduction to HTTP protocol
PPTX
Lessons Learned Monitoring Production
PPTX
Strategies in continuous delivery
Platform as a Runtime - PaaR QCON 2024 - Final
Scaling Engineering by Hacking Conway’s Law - Geecon,2022
Arrested by the cap devoxx uk 2018
Road to Continuous Delivery - Wix.com
Advanced A/B Testing - Jax London 2015
The Art of A/B Testing
Experimenting on Humans - Advanced A/B Tests - QCon SF 2014
Scaling r&d org while maintaining quality
Wix Dev-Centric Culture And Continuous Delivery
Introduction to HTTP protocol
Lessons Learned Monitoring Production
Strategies in continuous delivery

Recently uploaded (20)

PDF
Understanding Forklifts - TECH EHS Solution
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
What to Capture When It Breaks: 16 Artifacts That Reveal Root Causes
PPTX
Presentation of Computer CLASS 2 .pptx
PPT
Introduction Database Management System for Course Database
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Digital Strategies for Manufacturing Companies
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Materi_Pemrograman_Komputer-Looping.pptx
DOCX
The Five Best AI Cover Tools in 2025.docx
PPTX
Mastering-Cybersecurity-The-Crucial-Role-of-Antivirus-Support-Services.pptx
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
How to Confidently Manage Project Budgets
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
medical staffing services at VALiNTRY
PPTX
L1 - Introduction to python Backend.pptx
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Best Practices for Rolling Out Competency Management Software.pdf
Understanding Forklifts - TECH EHS Solution
Upgrade and Innovation Strategies for SAP ERP Customers
What to Capture When It Breaks: 16 Artifacts That Reveal Root Causes
Presentation of Computer CLASS 2 .pptx
Introduction Database Management System for Course Database
PTS Company Brochure 2025 (1).pdf.......
How to Migrate SBCGlobal Email to Yahoo Easily
Softaken Excel to vCard Converter Software.pdf
Digital Strategies for Manufacturing Companies
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Materi_Pemrograman_Komputer-Looping.pptx
The Five Best AI Cover Tools in 2025.docx
Mastering-Cybersecurity-The-Crucial-Role-of-Antivirus-Support-Services.pptx
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
How to Confidently Manage Project Budgets
VVF-Customer-Presentation2025-Ver1.9.pptx
medical staffing services at VALiNTRY
L1 - Introduction to python Backend.pptx
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Best Practices for Rolling Out Competency Management Software.pdf

Scaling wix with microservices architecture devoxx London 2015

  • 1. Aviran Mordo Head of Back-end Engineering @aviranm linkedin.com/in/aviran aviransplace.com Scaling with Microservices Architecture and Multi-cloud platforms
  • 3. Wix in Numbers Over 66M users Static storage is >2PB of data 3 data centers + 3 clouds (Google, Amazon,Azure) 2B HTTP requests/day 1000 people work atWix
  • 4. Initial Architecture Built for fast development Stateful login (Tomcat session), Ehcache, file uploads No consideration for performance, scalability and testing Intended for short-term use Tomcat, Hibernate, custom web framework Lighttpd (file serving) MySQL DB Wix (Tomcat)
  • 5. The Monolithic Giant One monolithic server that handled everything Dependency between features Changes in unrelated areas of the system caused deployment of the whole system Failure in unrelated areas will cause system wide downtime
  • 8. Concerns and SLA DataValidation Security / Authentication Data consistency Lots of data Edit websites High availability High performance Lots of static files Very high traffic volume Viewport optimization Long tail (immutable) Serving Media High availability High performance High traffic volume Long tail (mutable) View sites, created by Wix editor
  • 9. Wix Segmentation 1. Editor Segment 3. Public Segment2. Media Segment Networking
  • 10. HTML Editor Flash Editor MSM Private Media Public Media Editor Segment Public Segment Premium Services eCommerse List DB App Builder App Store App Market Dashboard Statics/me dia Mailer TimeZone Public HTML API Public API (Flash) MSP Public Server HTML Renderer HTML SEO Renderer Flash Renderer Flash SEO Renderer Sitemap Renderer Robots.txt Renderer User Server Template Viewer ContactsHUB Activit y Site Members Provided Mailing Service Comments Snapshoter User Pref Feed Me Shout-out Hotels PETRI Site Pref Dist LoggerSlicer eCom Renderer eCom Cart eCom Checkout eCom Catalog eCom Orders Payment Facade Account Info HTML API HTML Embeder BlogMobile
  • 11. Microservices Guidelines Each service has its own DB schema (if one is needed) Only one service should write to a specific DB table(s) There may be additional read-only services that directly accesses the DB (for performance reasons) Services are stateless No DB transactions Cache is not a building block, but an optimization
  • 12. It is all about
  • 14. Microservices Tradeoffs Each service has its own DB schema (if one is needed) Gain - Easy to scale microservices based on service level concerns Tradeoff – system complexity, performance Only one service should write to a specific DB table(s) Gain - Decoupling architecture – faster development Tradeoff – system complexity / performance May have additional read-only services that accesses the DB Gain - Performance gain Tradeoff - coupling Services are stateless Gain - Easy to scale out (just add more servers) Tradeoff - performance / consistency No DB transactions Gain - Better DB performance, easier to scale Tradeoff - system complexity
  • 16. Editor Server Immutable JSON pages (~3M / day) Site revisions Active – standby MySQL cross datacenters Editor Server MySQL Active Sites MySQL Archive
  • 18. Protect The Data DB outage with fast recovery = replication Data poisoning/corruption = revisions / backup Make the data available at all times = data distribution to multiple locations / providers
  • 19. Browser Editor Server GCS MySQL Active Sites MySQL Archive Saving Editor Data WixMedia (Amazon) WixMedia (Google) Save Page(s) 200 OK Upload Save Page DC replication Notify MySQL Archive MySQL Active Sites S3 WixMedia (DC-1)
  • 20. Browser Editor Server GCS MySQL Active Sites MySQL Archive WixMedia (Amazon) WixMedia (Google) Save Page(s) 200 OK Upload Save Page DC replication Notify MySQL Archive MySQL Active Sites S3 WixMedia (DC-1) Self Healing Process
  • 21. No DB Transactions Save each page (JSON) as an atomic operation Page ID is a content based hash (immutable/idempotent) Finalize transaction by sending site header (list of pages) Can generate orphaned pages, not a problem in practice
  • 22. 2. Media Segment (WixMP)
  • 23. Wix Media Platform (WixMP) Eventual consistent distributed file system (2PB user media files) Dynamic media processing Multi datacenter aware Automatic fallback cross DC Run on commodity servers & cloud
  • 24. T Google Cloud Prospero – Wix Media Manager get image.jpg First fallback Second fallback If not in CDN Amazon x36 T x36 T x32 Austin CDN
  • 26. Public Segment Roles Routing (resolve URLs) Dispatching (to a renderer) Rendering (HTML,XML,TXT) Public Server HTML Renderer HTML SEO Renderer Flash Renderer Sitemap Renderer Robots.txt Renderer www.example.com Flash SEO Renderer
  • 27. Public SLA Our goal: 99% response time <100ms at peak traffic
  • 28. Publish Site Publish site header (a map of pages for a site) Publish routing table Publish site header / routes (CQRS) Editor Segment Public Segment
  • 29. Built For Speed Minimize out-of-process hops (2 DB, 1 RPC) Lookup tables are cached in memory, updated every few minutes Denormalized data – optimize for read by primary key (MySQL) Minimize business logic
  • 30. How a Page Gets Rendered Bootstrap HTML template that contains only data Only JavaScript imports JSON data (site-header + dynamic data) No “real” HTML view
  • 31. Offload rendering work to the browser
  • 32. The average Intel Core i750 can push up to 7 GFLOPS without overclocking
  • 33. Why JSON? Easy to parse in JavaScript and Java/Scala Fairly compact text format Highly compressible (5:1 even for small payloads) Easy to fix rendering bugs and cross browsers issues (just deploy a new code)
  • 34. Minimum Number of Public Servers Needed to Serve 66M Sites 4
  • 36. Serving a Site – Sunny Day Archive CDN WixMP Browser http://example.wix.com Store HTML to cache HTTP Request Notify site view LB Public Renderer HTML Resources / Media HTTP Request
  • 37. Serving a Site – DC Lost Archive CDN WixMP Browser http://example.wix.com LB Public Renderer LB Public Renderer Change DNS HTTP Request
  • 38. Serving a Site – Public Lost Archive Browser http://example.wix.com LB Public Renderer Get Cached HTML Version HTML HTTP Request LB Public Renderer Fallback to 2nd DC
  • 39. Living in the Browser CDN WixMP Browser http://example.wix.com LB Public Renderer Editor Pages Fallback JSON / Media HTML HTTP Request Fallback
  • 40. Summary Identify concerns and SLA for different parts of the system Build redundancy in critical path (for availability) De-normalize data (for performance) Minimize out-of-process hops (for performance) Take advantage of client’s CPU power

Editor's Notes

  • #2: How many built a website?
  • #9: Editor – Read immediately after write – Small working set Viewer optimize for reads We fight for every ms. Page view = many resource downloading
  • #12: Read-only services only if it is part of the same business functionality
  • #15: Read-only services only if it is part of the same business functionality
  • #17: Immutable data helps handle eventual consistency MySql is a great key-value store Not all data is equal (only 6% of websites are edited 3 months after creation)
  • #19: Revision keep data safe from poisoning Pay in storage and management
  • #24: Highly optimized code – every ms count
  • #26: We can change the arrows as we want Tech vendor lock is a myth,  easy to change the api (small dev effort).  Invest in data distribution. Evaluation of new platform starts by putting the data.
  • #30: Save pages on JSON Upload to static storage
  • #38: Explain what is JSON and what is HTML
  • #39: UPS dies, secondary power source connected to the same UPS
  • #40: Due to error or bad configuration