Revised talk held by Sebastian Thoß and Sebastian Heuer at International PHP Conference 2016 in Munich.
"Legacy software can be like a zombie: it somehow still works, but nobody would consider it alive and well anymore and the thought of having to touch it makes you want to run away. So what can you do to get rid of it? We are currently replacing our monolithic e-commerce platform with a shiny new custom-tailored solution and want to show you what we do and what we have already learned."
5. How we started
• built on top of a standard e-commerce platform
• a lot of custom code to support a wide combination of product
options
Feature X Feature Y Feature Z
Core Code Customization
6. The challenges of a growing business
• serious performance issues
• own developers don’t feel comfortable with the code
• adding individual features is too complex
• upgrading is hard
30. Learnings
• we have full responsibility now
• no framework needed
• no relational database needed
• accessing the legacy session storage was too slow
• solved by adding a read slave for FURY
31. Goods and Bads
• three months of development until first launch
• fully object-oriented
• easy refactoring thanks to 100% code coverage
• not enough automated acceptance tests
• dependencies to legacy software (database changes, API calls)
50. Next steps
• open-source our CQRS RESTful Framework
• replace the next parts of the legacy system with new, self-contained
components / services
51.
52. Next steps
• open-source our CQRS RESTful Framework
• improve our deployment process
• replace the next parts of the legacy system with new, self-contained
components / services
53.
54. Next steps
• open-source our CQRS RESTful Framework
• improve our deployment process
• replace the next parts of the legacy system with new, self-contained
components / services
55. "one hundred fifty-seven quinvigintillion, seven hundred eighty-six
quattuorvigintillion, six hundred fifty-seven trevigintillion, seven hundred
forty-seven duovigintillion, three hundred forty unvigintillion, one hundred
eighty-six vigintillion, (…) nine hundred forty-five quintillion, eight hundred
twenty-eight quadrillion, two hundred seventy trillion, eighty billion, …"