How Wix Scaled to 60M Sites: Inside Its Microservice Architecture
Wix, the world’s largest DIY website‑building platform, transformed its monolithic Java stack into a 100‑plus microservice architecture built on Scala, Jetty, and Spring, supporting 60 million sites across 190 countries with robust media services, SDKs, and modern front‑end frameworks.
Background
Wix is the world’s largest DIY website‑building cloud platform, enabling anyone to create a beautiful site via drag‑and‑drop. It hosts 60 million sites in 190 countries, stores 2 PB of user files (growing 1.5 TB daily), runs on three data centers using Google Cloud and AWS, handles 15 billion HTTP requests per day, and is maintained by a 400‑person engineering team.
Architecture
Founded in 2006, Wix originally used a monolithic stack built on Java, Hibernate, Ehcache, Tomcat, and MySQL. By 2008 the monolith showed limitations, especially because the platform serves two major functions: serving published sites and supporting the site‑building editor. Changes to the editor often risked impacting the live‑site service.
To mitigate this, Wix migrated to a service‑oriented architecture, splitting the two functions into over 100 independent microservices built mainly with Scala, Jetty, and Spring. Each microservice runs as a separate stateless application with its own dedicated database, enabling frequent deployments.
The original Flash‑based editor was replaced in 2011 by an HTML5/JavaScript implementation, later adopting React. Wix’s microservices are grouped into four domains:
Wix Public : Serves published sites, using Scala, Jetty, Spring, MySQL; front‑end sites built with React + JSON.
Wix Editor : Provides the site‑building editor, developed in JavaScript, stores editor output as JSON in MySQL, and media files in the WixMP system; also Scala, Jetty, Spring, MySQL.
WixMP : Media file system handling images, videos, music, etc., integrated with CDN, running on Google Cloud and AWS, using Python/Go/C for heavy processing.
Verticals : Additional services such as e‑commerce or hotel modules, front‑end built with Angular, back‑end with Scala, Jetty, Spring, MySQL.
Wix treats MySQL as a NoSQL‑like store, using a primary‑key plus a JSON column without joins, which simplifies cross‑data‑center replication and yields sub‑millisecond lookups even on massive tables.
In 2012 Wix opened an application SDK, allowing third‑party components (e.g., blogs, CRM) via iframes, JavaScript SDK, and REST APIs.
Development Tools
Build: Maven, Grunt, TeamCity
Version control: GitHub
Project management: Jira
Deployment: Chef
Configuration: ZooKeeper
A/B testing: Petri
Monitoring: New Relic, Nagios, Graphite
BI: Hadoop, Pig, HBase, Storm
Microservices run on the JVM using Jetty, Spring MVC, and a custom framework; inter‑service communication uses JSON/RPC and ActiveMQ; storage includes MySQL and MongoDB; front‑end tooling includes Angular, React, and associated build/test tools.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java High-Performance Architecture
Sharing Java development articles and resources, including SSM architecture and the Spring ecosystem (Spring Boot, Spring Cloud, MyBatis, Dubbo, Docker), Zookeeper, Redis, architecture design, microservices, message queues, Git, etc.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
