SlideShare a Scribd company logo
1 of 32
How to architect your
E-commerce shop
using Helix
Presented by: Jonne Kats
July 27, 2017
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
“Helix is a set of overall design
principles and conventions for
Sitecore development.”
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 4
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 5
• Reuse-release equivalence principle (REP)
REP essentially means that the package must be created with reusable classes –
“Either all of the classes inside the package are reusable, or none of them are”.
• Common-reuse principle (CRP)
The CRP states that classes that tend to be reused together belong in the same
package together. It is a way of helping us decide which classes belong in which
package.
• Common-closure principle (CCP)
CCP states that the package should not have more than one reason to change. If
change were to happen in an application dependent on a number of packages,
ideally we only want changes to occur in one package, rather than in a number of
them.
Principles of package cohesion
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 6
• Acyclic dependencies principle (ADP)
In a development cycle with multiple developers, cooperation and integration needs to
happen in small incremental releases.The ADP states that there can be no cycles in the
dependency structure, and that when an incremental release is made, the other
developers can adopt and build upon it.
• Stable-dependencies principle (SDP)
Designs, by nature of the environments they are used in or by, are changing. So we need
to design our packages to be able to change as well.The SDP states that any packages
we want to be volatile should not be depended on by a package that is difficult to
change.
• Stable-abstractions principle (SAP)
The SAP says that a stable package should also be abstract so that its stability does not
prevent it from being extended. It also states that an instable package should be
concrete since its instability allows the concrete code within it to be easily changed.
Principles of package coupling
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 7
https://leanpub.com/principles-of-package-design
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 8
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 9
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
Security
Usability Availability
Performance
Modifiability
Reliability
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 11
• Usability
• Involve UX designer
• Use responsive front-end technology
• Performance
• Performance tests
• Introduce concurrency (ajax)
• Increase available resources
• Use responsive front-end technology
• Move resource intensive processes offline (Batch processing)
• Availability
• Load tests & stress tests
• Redundancy
• Monitoring / logging
Tactics
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 12
• Security
• OWASP
• Audits
• Reliability
• Retry
• Redundancy
• Logging / monitoring
• Modifiability
• Helix
Tactics
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 13
What technology?
Retry operations?
What architectural pattern(s)?
Batch processing?
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 14
• Sitecore / Commerce Server
• MVC
• Web API
• React
What technology to use?
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 15
• Interactive / fast
• Component based
• Server side rendering
• No flash of unstyled content
• Search engine friendly
React
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 16
Cart
Store
Update
Listen
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 17
React
Browser Server
Get page
Initial page with React
components
React component
Render
HTML
Interact
REST
HTML
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 18
• Helix
• Multi-layered
• REST
• Component based
• MVC
Architectural patterns
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 19
By data?
By responsibility?
By volatility?
Decomposing modules
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 20
Module
Commerce
Cart Checkout Account
Webshop
Catalog
Module
ModuleModuleModule
ModuleModuleModule
Commerce
Commerce
React
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 21
Module
Catalog Checkout Account
Cart Checkout Account
Webshop
Catalog
Module
ModuleModuleModule
ReactModuleModule
Commerce
Commerce
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 22
Module
Catalog
Enrichment
Checkout Account
Cart Checkout Account
Webshop
Catalog
Module
Guided
Navigation
ModuleModule
Guided
Navigation
ReactModule
Commerce
Commerce
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 23
Module
Catalog
Enrichment
Checkout Account
Cart Checkout Account
Webshop
Catalog
Module
Guided
Navigation
Menu
Guided
NavigationReact SEO
Commerce
Commerce
Cart Order
Order
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 24
Dependencies
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 25
Cart
GetCart
<<Interface>>
IEnrichmentService
GetFields
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 26
Cart
GetCart
<<Interface>>
IEnrichmentService
GetFields
CartEnricher
GetFields
<<Interface>>
IIEnrichCart
GetFields
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 27
Cart
GetCart
<<Interface>>
IEnrichmentService
GetFields
CartEnricher
GetFields
<<Interface>>
IIEnrichCart
GetFields
<<Interface>>
IProductBundleService
GetFields
CartEnricher
GetFields
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 28
Cart
GetCart
<<Interface>>
IEnrichmentService
GetFields
CartEnricher
GetFields
<<Interface>>
IIEnrichCart
GetFields
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 29
• React is awesome for Sitecore and E-commerce
• Chase down the code that changes together and move to its own module
• Inverse dependencies, find common abstractions and make modules
reusable
• Read Matthias’ book!
Conclusion
© 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 30
Questions?
FOR DISCUSSION PURPOSESONLY. Sitecore
Confidential and Proprietary. © 2016 Sitecore
Corporation A/S. All rights reserved. Sitecore®
and Own the Experience® are registered
trademarks of Sitecore Corporation A/S. All
other brand and product names are the
property of their respective owners.

More Related Content

Similar to How to architect your E-commerce shop using Helix

Sitecore Experience Commerce Architecture
Sitecore Experience Commerce ArchitectureSitecore Experience Commerce Architecture
Sitecore Experience Commerce ArchitectureRob Earlam
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureDaniel Foo
 
Empowering Your Users: Maximizing the Content Management Experience
Empowering Your Users: Maximizing the Content Management ExperienceEmpowering Your Users: Maximizing the Content Management Experience
Empowering Your Users: Maximizing the Content Management ExperienceJeffrey Rondeau
 
Provoke: Agile Marcoms - Strategies & Technologies
Provoke: Agile  Marcoms - Strategies & TechnologiesProvoke: Agile  Marcoms - Strategies & Technologies
Provoke: Agile Marcoms - Strategies & TechnologiesMando
 
An Under-the-Hood Tour of Sitecore Experience Accelerator
An Under-the-Hood Tour of Sitecore Experience AcceleratorAn Under-the-Hood Tour of Sitecore Experience Accelerator
An Under-the-Hood Tour of Sitecore Experience AcceleratorSitecore
 
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...John Montes
 
Meet your new best friend: The Sitecore rules engine
Meet your new best friend: The Sitecore rules engineMeet your new best friend: The Sitecore rules engine
Meet your new best friend: The Sitecore rules engineJeffrey Rondeau
 
SUGMEA - Sitecore Experience Platform - what's new in 9.3 preview
SUGMEA - Sitecore Experience Platform - what's new in 9.3 previewSUGMEA - Sitecore Experience Platform - what's new in 9.3 preview
SUGMEA - Sitecore Experience Platform - what's new in 9.3 previewdharmeshharji
 
Sitecore User Group - JSS & GraphQL
Sitecore User Group - JSS & GraphQLSitecore User Group - JSS & GraphQL
Sitecore User Group - JSS & GraphQLThom Puiman
 
Track 4 - How the avalanche of available customer data can help create more e...
Track 4 - How the avalanche of available customer data can help create more e...Track 4 - How the avalanche of available customer data can help create more e...
Track 4 - How the avalanche of available customer data can help create more e...edynamic
 
Sitecore Virtual Developer Day - SxA Storefront
Sitecore Virtual Developer Day -  SxA StorefrontSitecore Virtual Developer Day -  SxA Storefront
Sitecore Virtual Developer Day - SxA StorefrontRob Earlam
 
Introducing the Sitecore Commerce 9 Connector for Microsoft D365
Introducing the Sitecore Commerce 9 Connector for Microsoft D365Introducing the Sitecore Commerce 9 Connector for Microsoft D365
Introducing the Sitecore Commerce 9 Connector for Microsoft D365Dean Thrasher
 
Getting Started: Automation
Getting Started: AutomationGetting Started: Automation
Getting Started: AutomationSitecore
 
Beyond Personalisation: The Customer Conversation with Sitecore
Beyond Personalisation: The Customer Conversation with SitecoreBeyond Personalisation: The Customer Conversation with Sitecore
Beyond Personalisation: The Customer Conversation with SitecoreSitecore
 
Accelerate your sitecore website delivery with sitecore sxa - sugcon india 2019
Accelerate your sitecore website delivery with sitecore sxa - sugcon india 2019Accelerate your sitecore website delivery with sitecore sxa - sugcon india 2019
Accelerate your sitecore website delivery with sitecore sxa - sugcon india 2019chaturanga ranatunga
 
Realising the potential: think cxm not cms
Realising the potential: think cxm not cmsRealising the potential: think cxm not cms
Realising the potential: think cxm not cmsSitecore
 
Sitecore: Session recommendation engine
Sitecore: Session recommendation engineSitecore: Session recommendation engine
Sitecore: Session recommendation engineVarunNehra
 
Sitecore Symposium 2018 - Supercharge Your Author Experience With Machine Lea...
Sitecore Symposium 2018 - Supercharge Your Author Experience With Machine Lea...Sitecore Symposium 2018 - Supercharge Your Author Experience With Machine Lea...
Sitecore Symposium 2018 - Supercharge Your Author Experience With Machine Lea...Mark Stiles
 

Similar to How to architect your E-commerce shop using Helix (20)

Sitecore Experience Commerce Architecture
Sitecore Experience Commerce ArchitectureSitecore Experience Commerce Architecture
Sitecore Experience Commerce Architecture
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Empowering Your Users: Maximizing the Content Management Experience
Empowering Your Users: Maximizing the Content Management ExperienceEmpowering Your Users: Maximizing the Content Management Experience
Empowering Your Users: Maximizing the Content Management Experience
 
Provoke: Agile Marcoms - Strategies & Technologies
Provoke: Agile  Marcoms - Strategies & TechnologiesProvoke: Agile  Marcoms - Strategies & Technologies
Provoke: Agile Marcoms - Strategies & Technologies
 
An Under-the-Hood Tour of Sitecore Experience Accelerator
An Under-the-Hood Tour of Sitecore Experience AcceleratorAn Under-the-Hood Tour of Sitecore Experience Accelerator
An Under-the-Hood Tour of Sitecore Experience Accelerator
 
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...
 
Meet your new best friend: The Sitecore rules engine
Meet your new best friend: The Sitecore rules engineMeet your new best friend: The Sitecore rules engine
Meet your new best friend: The Sitecore rules engine
 
SUGMEA - Sitecore Experience Platform - what's new in 9.3 preview
SUGMEA - Sitecore Experience Platform - what's new in 9.3 previewSUGMEA - Sitecore Experience Platform - what's new in 9.3 preview
SUGMEA - Sitecore Experience Platform - what's new in 9.3 preview
 
Sitecore User Group - JSS & GraphQL
Sitecore User Group - JSS & GraphQLSitecore User Group - JSS & GraphQL
Sitecore User Group - JSS & GraphQL
 
Track 4 - How the avalanche of available customer data can help create more e...
Track 4 - How the avalanche of available customer data can help create more e...Track 4 - How the avalanche of available customer data can help create more e...
Track 4 - How the avalanche of available customer data can help create more e...
 
Sitecore Virtual Developer Day - SxA Storefront
Sitecore Virtual Developer Day -  SxA StorefrontSitecore Virtual Developer Day -  SxA Storefront
Sitecore Virtual Developer Day - SxA Storefront
 
Introducing the Sitecore Commerce 9 Connector for Microsoft D365
Introducing the Sitecore Commerce 9 Connector for Microsoft D365Introducing the Sitecore Commerce 9 Connector for Microsoft D365
Introducing the Sitecore Commerce 9 Connector for Microsoft D365
 
SXA beyond the box
SXA beyond the boxSXA beyond the box
SXA beyond the box
 
JAMStack
JAMStackJAMStack
JAMStack
 
Getting Started: Automation
Getting Started: AutomationGetting Started: Automation
Getting Started: Automation
 
Beyond Personalisation: The Customer Conversation with Sitecore
Beyond Personalisation: The Customer Conversation with SitecoreBeyond Personalisation: The Customer Conversation with Sitecore
Beyond Personalisation: The Customer Conversation with Sitecore
 
Accelerate your sitecore website delivery with sitecore sxa - sugcon india 2019
Accelerate your sitecore website delivery with sitecore sxa - sugcon india 2019Accelerate your sitecore website delivery with sitecore sxa - sugcon india 2019
Accelerate your sitecore website delivery with sitecore sxa - sugcon india 2019
 
Realising the potential: think cxm not cms
Realising the potential: think cxm not cmsRealising the potential: think cxm not cms
Realising the potential: think cxm not cms
 
Sitecore: Session recommendation engine
Sitecore: Session recommendation engineSitecore: Session recommendation engine
Sitecore: Session recommendation engine
 
Sitecore Symposium 2018 - Supercharge Your Author Experience With Machine Lea...
Sitecore Symposium 2018 - Supercharge Your Author Experience With Machine Lea...Sitecore Symposium 2018 - Supercharge Your Author Experience With Machine Lea...
Sitecore Symposium 2018 - Supercharge Your Author Experience With Machine Lea...
 

Recently uploaded

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Recently uploaded (20)

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

How to architect your E-commerce shop using Helix

  • 1. How to architect your E-commerce shop using Helix Presented by: Jonne Kats July 27, 2017
  • 2. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
  • 3. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. “Helix is a set of overall design principles and conventions for Sitecore development.”
  • 4. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 4
  • 5. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 5 • Reuse-release equivalence principle (REP) REP essentially means that the package must be created with reusable classes – “Either all of the classes inside the package are reusable, or none of them are”. • Common-reuse principle (CRP) The CRP states that classes that tend to be reused together belong in the same package together. It is a way of helping us decide which classes belong in which package. • Common-closure principle (CCP) CCP states that the package should not have more than one reason to change. If change were to happen in an application dependent on a number of packages, ideally we only want changes to occur in one package, rather than in a number of them. Principles of package cohesion
  • 6. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 6 • Acyclic dependencies principle (ADP) In a development cycle with multiple developers, cooperation and integration needs to happen in small incremental releases.The ADP states that there can be no cycles in the dependency structure, and that when an incremental release is made, the other developers can adopt and build upon it. • Stable-dependencies principle (SDP) Designs, by nature of the environments they are used in or by, are changing. So we need to design our packages to be able to change as well.The SDP states that any packages we want to be volatile should not be depended on by a package that is difficult to change. • Stable-abstractions principle (SAP) The SAP says that a stable package should also be abstract so that its stability does not prevent it from being extended. It also states that an instable package should be concrete since its instability allows the concrete code within it to be easily changed. Principles of package coupling
  • 7. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 7 https://leanpub.com/principles-of-package-design
  • 8. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 8
  • 9. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 9
  • 10. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. Security Usability Availability Performance Modifiability Reliability
  • 11. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 11 • Usability • Involve UX designer • Use responsive front-end technology • Performance • Performance tests • Introduce concurrency (ajax) • Increase available resources • Use responsive front-end technology • Move resource intensive processes offline (Batch processing) • Availability • Load tests & stress tests • Redundancy • Monitoring / logging Tactics
  • 12. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 12 • Security • OWASP • Audits • Reliability • Retry • Redundancy • Logging / monitoring • Modifiability • Helix Tactics
  • 13. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 13 What technology? Retry operations? What architectural pattern(s)? Batch processing?
  • 14. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 14 • Sitecore / Commerce Server • MVC • Web API • React What technology to use?
  • 15. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 15 • Interactive / fast • Component based • Server side rendering • No flash of unstyled content • Search engine friendly React
  • 16. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 16 Cart Store Update Listen
  • 17. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 17 React Browser Server Get page Initial page with React components React component Render HTML Interact REST HTML
  • 18. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 18 • Helix • Multi-layered • REST • Component based • MVC Architectural patterns
  • 19. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 19 By data? By responsibility? By volatility? Decomposing modules
  • 20. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 20 Module Commerce Cart Checkout Account Webshop Catalog Module ModuleModuleModule ModuleModuleModule Commerce Commerce React
  • 21. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 21 Module Catalog Checkout Account Cart Checkout Account Webshop Catalog Module ModuleModuleModule ReactModuleModule Commerce Commerce
  • 22. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 22 Module Catalog Enrichment Checkout Account Cart Checkout Account Webshop Catalog Module Guided Navigation ModuleModule Guided Navigation ReactModule Commerce Commerce
  • 23. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 23 Module Catalog Enrichment Checkout Account Cart Checkout Account Webshop Catalog Module Guided Navigation Menu Guided NavigationReact SEO Commerce Commerce Cart Order Order
  • 24. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 24 Dependencies
  • 25. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 25 Cart GetCart <<Interface>> IEnrichmentService GetFields
  • 26. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 26 Cart GetCart <<Interface>> IEnrichmentService GetFields CartEnricher GetFields <<Interface>> IIEnrichCart GetFields
  • 27. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 27 Cart GetCart <<Interface>> IEnrichmentService GetFields CartEnricher GetFields <<Interface>> IIEnrichCart GetFields <<Interface>> IProductBundleService GetFields CartEnricher GetFields
  • 28. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 28 Cart GetCart <<Interface>> IEnrichmentService GetFields CartEnricher GetFields <<Interface>> IIEnrichCart GetFields
  • 29. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 29 • React is awesome for Sitecore and E-commerce • Chase down the code that changes together and move to its own module • Inverse dependencies, find common abstractions and make modules reusable • Read Matthias’ book! Conclusion
  • 30. © 2001-2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 30 Questions?
  • 31.
  • 32. FOR DISCUSSION PURPOSESONLY. Sitecore Confidential and Proprietary. © 2016 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.

Editor's Notes

  1. Open layers (Dus je mag lagen overslaan)
  2. What are the desired quality attributes for a webshop? Usability & performance -> If the shop is to hard to use or if it takes to long to load a page or to get through the checkout you will lose customers Availability -> Same thing. If your shop is a bit successful, every minute that your shop is offline you will lose customers Reliability -> You don’t want to lose an order and you want the order confirmations to arrive Modifiability -> You need to keep up with latest technologies, so it needs to be easily modified and maintained So these are the basis for our architecture. Now, how to achieve them or what are the tactics?
  3. Abstract commerce? Monolithic commerce module
  4. Decomposed by business?