3. Agenda
Part I
Overview of old system
Problems with the old system
Refactoring vs rewriting
Part II
Problems and solutions
Part III
Lessons learned
3
6. Some Numbers
~1M stores
Over 5M http requests per day
Average response time of ~300 ms
2 data centers + 1 cloud (AWS)
Couple of seconds for store provision
13. Pros
Will continue to deliver
Only critical sections fixed
Cons
Stuck with dead tech
Still different stack than Wix
Rewriting?
Refactoring?
14. Pros
If done correctly, solves old
system’s problems
Cons
Product freeze for 6 months
Might fail
Pros
Will continue to deliver
Only critical sections fixed
Cons
Stuck with dead tech
Still different stack than Wix
Rewriting?Refactoring?
19. What’s the problem with Mono-server?
One server to rule them all - single point of failure
Dependency between unrelated features
Need to deploy the entire system each time
20. What’s the problem with Mono-server?
One server to rule them all - single point of failure
Dependency between unrelated features
Need to deploy the entire system each time
22. Micro-services
Each microservice is relatively small
Each service can be deployed
independently of other services
Easier to scale development
Improved fault isolation
Each service can be developed and
deployed independently
Eliminates any long-term commitment
to a technology stack
24. Did we solve our problems?
One server to rule them all - single point of failure
Dependency between unrelated features
Need to deploy the entire system each time
25. Did we solve our problems?
One server to rule them all - single point of failure
Dependency between unrelated features
Need to deploy the entire system each time
26. Lessons Learned about Micro-Services
Error handling and log tracing in the cluster
Synced micro-services (WIP)
Configuration of micro-services (WIP)
Backward and forward compatibility design
60. Lessons Learned about Event Sourcing
Paradigm shifts - convincing the team…
Code complexity
Invest time in your framework - it will pay up
Solves backward and forward compatibly problem
DB size - space problem?