SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
commerce technology
for category leaders
2015 Spryker Systems GmbH /About Spryker 2
1. Our Story
2. The market and how we fit in
3. Software architecture
4. Spryker’s technology concept
5. Delivery
Our Story
2015 Spryker Systems GmbH /About Spryker 3
DEVELOPMENT
Ambitious commerce projects
Appropriate softwarenotavailable
Internalframework solution
100+ online businessmodels launched
October 2014: Spryker is founded
IMPLEMENTATIONEXAMPLES
B2B Webshop with
complex business logics
Largest Meal Ingredients
deliveryin EU, 380% YTY growth
Real Estate Marketplace
33 countries in 15months
CategoryLeaderfor
Fashion in Brazil
Largest Furniture Shopping
Club in Europe
Meal Deliveryin EU and
SE Asia, $740 Mio. GMV
Spryker solves a lot of common issues
2015 Spryker Systems GmbH /About Spryker 4
Common issues of shop software Solutions integrated in Spryker
Full-page cache Separation of frontend and backend
Website drawsfromdatabase Frontend drawsfromKey ValueStorage
Entity AttributeValue (EAV) model Extend DBSchema + JSON values
Unnecessary code components& features Lean code baseand modular features
Monolithic approach Modular monolith
2015 Spryker Systems GmbH /About Spryker 5
1. Our Story
2. The market and how we fit in
3. Software architecture
4. Spryker’s technology concept
5. Delivery
ERP
CRM
PIM
CMS
…
OMS Shop Shop Shop
E-Commerce Technology matures
2015 Spryker Systems GmbH /About Spryker 6
1995 - 2002 2003 - 2013 2014 +
E-commerce =
additional sales channel
E-commerce =
new business model
E-commerce =
part of an ecosystem
1st Generation
ERP-focused setup
2nd Generation
Features move into Shop
3rd Generation
Features move outin Ecosystem
ERP ERP
CRM
PIM
CMS
…
OMS
CRMPIM
CMS…
OMS
+ channels
+ devices
+ complexity
+ content
+ uncertainty
STANDARD SOFTWARE
low risk but static
Enabling tomorrow’stechnologyleaders
2015 Spryker Systems GmbH /About Spryker 7
Technologyas Value Driver
FRAMEWORK
Individuality&
differentiation
Reduced risks &
ownership costs
DegreeofIndividualization
IN-HOUSE PROJECTS
agile but expensive
2015 Spryker Systems GmbH /About Spryker 8
1. Our Story
2. The market and how we fit in
3. Software architecture
4. Spryker’s technology concept
5. Delivery
Building Blocks - technologies
2015 Spryker Systems GmbH /About Spryker 9
Spryker uses conservativestateofthe art technologies
Technology Architecture
2015 Spryker Systems GmbH /About Spryker 10
Technology Architecture
2015 Spryker Systems GmbH /About Spryker 11
Technology Architecture
2015 Spryker Systems GmbH /About Spryker 12
Technology Architecture
2015 Spryker Systems GmbH /About Spryker 13
Technology Architecture – Mobile / API
2015 Spryker Systems GmbH /About Spryker 14
ZED
backend
Search
Engine
Sessions
KV
Storage REST API
public API
HYBRID
MOBILE APP
AngularJS
YVES
frontend
Setup ofmobilefeatures as anadditional
frontendwithsame backendlogics
REST API has samearchitecture as Yves
anduses the sameRPC calls
NativeandHybrid Appscan be build
againstthisinterface
Offers samebenefitsas Yves:speed,
simplicity(nobusinesslogic),scalability
RPCRPC
Scaling (implementation example)
2015 Spryker Systems GmbH /About Spryker 15
Horizontal+ vertical
scalingenabled
Allowsfor rolling
deployment+Zero
Downtime
DB /Redis /
Elasticsearch as high
availableservices
Sampleinfrastructure
providedviasaltstack
templates
Yves load-balancer
Zed load-balancer
Yves
phpApp
Yves
phpApp
Yves
phpApp
Zed Main
phpApp*
Zed
phpApp
DB
Redis
Elastic
search
scale
read / writeread / write
write
read
read
*Zed main server only:
run cronjobs and post
deployment hooks
scale
Master-master
or master-slave
configuration
Spryker enables micro-services
2015 Spryker Systems GmbH /About Spryker 16
ZED
Catalog
Frameworkapproach
allowsfor independent
services
Decoupledbundlesand
definedAPIs make
integrationandseparation
intoservices easy
PostgresDB
RPC
YVES
Catalog
ZED
OMS
MySQL DB
ZED
B2B
Legacy DB
ERP
YVES
Cart
RPC
Merchant
Portal
RPC
2015 Spryker Systems GmbH /About Spryker 17
1. Our Story
2. The market and how we fit in
3. Software architecture
4. Spryker’s technology concept
5. Delivery
Spryker Bundles
2015 Spryker Systems GmbH /About Spryker 18
Customer
CMS
Checkout
Catalog
Cart
Availability
Auth
Acl
Mail
Locale
Item
Grouper
Invoice
Glossary
Distributor
Discount
Country
Sales
Queue
Product
Option
Product
Category
Product
Price
Payment
Oms
Wishlist
User
Url
Storage
Stock
Shipment
Session
Search
All important features:
Spryker comes with
100+ bundles
Easy and fast updates:
each bundlehasits own
versioning
Consistent: each
bundlehasthe same
basic architecture
Flexible & adaptable:
bundledependencies
are reduced toa
minimum
Bundle Dependency Management
2015 Spryker Systems GmbH /About Spryker 19
How dependencies are programmed
stock
bundle
availability
bundle
OMS
bundle
product
bundle
cart
bundle
checkout
bundle
stock
bundle
availability
bundle
OMS
bundle
product
bundle
cart
bundle
checkout
bundle
availability –checkout
connector bundle
availability –cart
connector bundle
What theworkflow looks like
This way, dependencies are always kept to a minimumand the setup stays agile
Bundle Dependency Management
2015 Spryker Systems GmbH /About Spryker 20
AGILITY: minimaldependenciesbetween
bundles,dependencymanagementvia
composer
LEAN SETUP: only include needed
bundles in project – keeps complexity as
low as possible
VERSIONING: upgradesonbundlelevel
- efficient: onlyneeded bundles
- fast: quicker updatesavailablewhere
needed, nowaitingfor next version
- simple: nostiff andcomplexupgrading
of entire framework
Spryker bundles concept
2015 Spryker Systems GmbH /About Spryker 21
bundles= functionalunits,e.g. cart, checkout,product
each bundleconsistsofup to4 layers
intersectionof layerandbundle= box
PRESENTATION LAYER: templates for Zed admin gui
COMMUNICATIONSLAYER: controllers, UI-elements and plugins
BUSINESS LAYER: businessand persistence logic
PERSISTENCE LAYER: (SQL) queries, entities and databaseschema
Spryker Bundles
2015 Spryker Systems GmbH /About Spryker 22
Customer
CMS
Checkout
Catalog
Cart
Availability
Auth
Acl
Mail
Locale
Item
Grouper
Invoice
Glossary
Distributor
Discount
Country
Sales
Queue
Product
Option
Product
Category
Product
Price
Payment
Oms
Wishlist
User
Url
Storage
Stock
Shipment
Session
Search
Yves client layer
2015 Spryker Systems GmbH /About Spryker 23
ZED backend
RPC
Yves only consistsof
templates, controllers,
service providers
Possible to build another
Yves with another
framework and stilluse
Spryker
Client is core functionality
for theshopfrontend
Client acts as asa facade
and delegates calls to Zed,
Search and Storage
SEARCH STORAGE
STUB SEARCH API STORAGE API
GATEWAY
CARTCLIENT
JSON
Query
Redis
Protocol
YVES
Controller, Themes
CLIENT
PRESENTATION LAYER
COMMUNICATIONSLAYER
BUSINESS LAYER
PERSISTENCE LAYER
Spryker bundles concept
2015 Spryker Systems GmbH /About Spryker 24
bundles= functionalunits,e.g. cart, checkout,product
each bundleconsistsofup to4 layers
intersectionof layerandbundle= box
CART
BUNDLE
CHECKOUT
BUNDLE
PRODUCT
BUNDLE
Separated core, project & localized code
2015 Spryker Systems GmbH /About Spryker 25
PRESENTATION LAYER
COMMUNICATIONSLAYER
BUSINESS LAYER
PERSISTENCE LAYER
CORELEVEL
PROJECTLEVEL
STORELEVEL
Spryker bundles
clientimplementation
US, DE, UK, FR, CA, …
Separated core, project & localized code
2015 Spryker Systems GmbH /About Spryker 26
Implementation example of the three levels
extractof implemented corebundles
custom projects added to adapted corebundles
custom bundlesfor specific stores/ localized shops
Factories allow to extend all classes.
Extension of thedependency
container allows to replace any class.
COREPROJECTSTORE
product
bundle
cart
bundle
stock
bundle
MySpecial1
bundle
MySpecial2
bundle
product
bundle
cart
bundle
product
bundle_DE
product
bundle_FR
MySpecial2
bundle_FR
Building Blocks - principles
2015 Spryker Systems GmbH /About Spryker 27
Spryker is good software craftsmanship:
SOLID - Clean Code – Separation of Concerns
Software Principles & Patterns
2015 Spryker Systems GmbH /About Spryker 28
SOLID: Single Responsibility Principle There should never be more than one
reason for a class to change
default principle for each class is
defined in Spryker
single responsibility principle is
applied on bundle, class, and method
level
example : facade classes represent
the internal API of a bundle and the
only point of access to a bundle
facades areflat and stateless classes
- their only responsibility is to
orchestrate the incoming requests
to the business logic implemented in
the bundle
Software Principles & Patterns
2015 Spryker Systems GmbH /About Spryker 29
SOLID: Interface Segregation Principle Many client specific interfaces are
better than one general interface
in Spryker this is used for facades
in order to substitute a bundle
with a new one, its facade must
contain the same operations so
that it doesn’t break the contract
established with other bundles
each bundle ships with a set of
interfaces for facades of the
required bundles
Software Principles & Patterns
2015 Spryker Systems GmbH /About Spryker 30
Factory & Locator Pattern
Factories are used to instantiate new
classes inside a bundle
allows for differentimplementations
on core, project & store level
Locators used to access other bundles
allows for differentimplementations
on core, project & store level
decreases dependency between
bundles
Order Management in Spryker
2015 Spryker Systems GmbH /About Spryker 31
Other Systems Spryker
Shop ERP Shop ERP
= WMS
pick &
pack
ship
return
refund
payment
order
reality Shop and ERP: black box
with high potential for errors
Spryker allows for separation of
concerns, order processed in shop
(optional w/ Spryker) (recommended w/ Spryker)
Order Management in Spryker
2015 Spryker Systems GmbH /About Spryker 32
Process model design / State machines
new
invoice
created
waiting for
payment
payment
received
clarify
reminder
fulfillment
initialized
Event: Timeout 14days
Event: Payment received Command: Initiate fullfillment
Event: onEnter
<<manual>>Button on screen
Event: PaymentReceived
Conditions
Manual
waiting for
capture
capture
failure
capture
success
Event: onEnter
Command: captureAmount
Condition: CaptureCondition
waiting for
capture
capture
failure
capture
success
manualmanual
Order Management in Spryker
2015 Spryker Systems GmbH /About Spryker
Order Management in Spryker
2015 Spryker Systems GmbH /About Spryker
Order Management in Spryker
2015 Spryker Systems GmbH /About Spryker
Order Management in Spryker
2015 Spryker Systems GmbH /About Spryker
Order Management in Spryker
2015 Spryker Systems GmbH /About Spryker
Order Management in Spryker
Screenshots / Images available
separately as well as state
machine demo and source code
2015 Spryker Systems GmbH /About Spryker
2015 Spryker Systems GmbH /About Spryker 39
1. Our Story
2. The market and how we fit in
3. Software architecture
4. Spryker’s technology concept
5. Delivery
Spryker delivery contents
2015 Spryker Systems GmbH /About Spryker 40
GIT repositories:all bundles as separate components
Infrastructure:deploymenttemplates via saltstack
Demo-shop viaDeveloper-VM: full stack development
shop templatewith all components
SprykerAcademy: access to documentation and
projectcontrollingtemplates
What makes development with Spryker so fast?
2015 Spryker Systems GmbH /About Spryker 41
Architectural decisions are provided by the framework
Best practices from over 100 implementations included in
the technology
Consequent de-couplingof bundles supports fastiterations
Full IDE auto-completion
“No magicmethods” enable easy debugging
Complete stack on developer laptop
Coherent architecture (Frontend, Backend, Extensions)
Technology Summary
2015 Spryker Systems GmbH /About Spryker 42
Framework approach
Modular monolith
Frontend / Backend separation
Symfony/ Silex based PHP Application
Developer friendly
2015 Spryker Systems GmbH /About Spryker 43
A proventechnology built in real-
world projects for ambitious and
non-standard business models.
Spryker Systems GmbH
Berlin, Germany
Sao Paulo, Brazil
San Jose, USA
info@spryker.com
PhoneDe: +49 40 328 929 631
PhoneUS: +1 408 952 9710
www.spryker.com
www.kassenzone.de
www.goto.project-a.com
44

Mais conteúdo relacionado

Mais procurados

The Product Owner Role
The Product Owner RoleThe Product Owner Role
The Product Owner Role
Nigel Thurlow
 

Mais procurados (20)

Treeveo Pitch Deck for Presentations
Treeveo Pitch Deck for PresentationsTreeveo Pitch Deck for Presentations
Treeveo Pitch Deck for Presentations
 
Business Model Generation Value Proposition PowerPoint Presentation Slides
Business Model Generation Value Proposition PowerPoint Presentation SlidesBusiness Model Generation Value Proposition PowerPoint Presentation Slides
Business Model Generation Value Proposition PowerPoint Presentation Slides
 
WebSummit 2018 - The SaaS Business Model & Metrics
WebSummit 2018 - The SaaS Business Model & MetricsWebSummit 2018 - The SaaS Business Model & Metrics
WebSummit 2018 - The SaaS Business Model & Metrics
 
GDSC NSUT Orientation 2023
GDSC NSUT Orientation 2023GDSC NSUT Orientation 2023
GDSC NSUT Orientation 2023
 
Project to product mindset
Project to product mindsetProject to product mindset
Project to product mindset
 
Y Combinator Pitch Deck Template For Startup Founders
Y Combinator Pitch Deck Template For Startup FoundersY Combinator Pitch Deck Template For Startup Founders
Y Combinator Pitch Deck Template For Startup Founders
 
Zero to 50m
Zero to 50m Zero to 50m
Zero to 50m
 
The Product Owner Role
The Product Owner RoleThe Product Owner Role
The Product Owner Role
 
Full Program & Tools to Accelerate an Internal Innovation Project - by Board ...
Full Program & Tools to Accelerate an Internal Innovation Project - by Board ...Full Program & Tools to Accelerate an Internal Innovation Project - by Board ...
Full Program & Tools to Accelerate an Internal Innovation Project - by Board ...
 
From Business model to Capability Map
From Business model to Capability Map From Business model to Capability Map
From Business model to Capability Map
 
The New Assembly Line: 3 Best Practices for Building (Secure) Connected Cars
The New Assembly Line: 3 Best Practices for Building (Secure) Connected CarsThe New Assembly Line: 3 Best Practices for Building (Secure) Connected Cars
The New Assembly Line: 3 Best Practices for Building (Secure) Connected Cars
 
SAFe for Teams Digital Workbook (5.0.1).pdf
SAFe for Teams Digital Workbook (5.0.1).pdfSAFe for Teams Digital Workbook (5.0.1).pdf
SAFe for Teams Digital Workbook (5.0.1).pdf
 
Cloudamize Platform Training for Azure.pptx
Cloudamize Platform Training for Azure.pptxCloudamize Platform Training for Azure.pptx
Cloudamize Platform Training for Azure.pptx
 
Foundations of the Scaled Agile Framework® (SAFe® ) 4.5
Foundations of the Scaled Agile Framework® (SAFe® ) 4.5Foundations of the Scaled Agile Framework® (SAFe® ) 4.5
Foundations of the Scaled Agile Framework® (SAFe® ) 4.5
 
The Rise Of Low-Code And No-Code Platforms And Its Future | SynergyTop
The Rise Of Low-Code And No-Code Platforms And Its Future | SynergyTopThe Rise Of Low-Code And No-Code Platforms And Its Future | SynergyTop
The Rise Of Low-Code And No-Code Platforms And Its Future | SynergyTop
 
Why Solutions Fail and the Business Value of Solution Architecture
Why Solutions Fail and the Business Value of Solution ArchitectureWhy Solutions Fail and the Business Value of Solution Architecture
Why Solutions Fail and the Business Value of Solution Architecture
 
Essential SAFe® 4.0
Essential SAFe® 4.0Essential SAFe® 4.0
Essential SAFe® 4.0
 
M&A for Management Consultants & Business Analysts
M&A for Management Consultants & Business AnalystsM&A for Management Consultants & Business Analysts
M&A for Management Consultants & Business Analysts
 
[FR] How did Amadeus build a LACE to support a global SAFe transformation for...
[FR] How did Amadeus build a LACE to support a global SAFe transformation for...[FR] How did Amadeus build a LACE to support a global SAFe transformation for...
[FR] How did Amadeus build a LACE to support a global SAFe transformation for...
 
Cloud & GCP 101
Cloud & GCP 101Cloud & GCP 101
Cloud & GCP 101
 

Destaque

Destaque (20)

Detroit Property Report v3
Detroit Property Report v3Detroit Property Report v3
Detroit Property Report v3
 
Riverdale, de weg naar e-commerce
Riverdale, de weg naar e-commerceRiverdale, de weg naar e-commerce
Riverdale, de weg naar e-commerce
 
Lars Jankowfsky - Learn or Die - code.talks 2015
Lars Jankowfsky - Learn or Die - code.talks 2015Lars Jankowfsky - Learn or Die - code.talks 2015
Lars Jankowfsky - Learn or Die - code.talks 2015
 
Tarek Müller - Talentday Präsentation zum Unternehmertum
Tarek Müller - Talentday Präsentation zum UnternehmertumTarek Müller - Talentday Präsentation zum Unternehmertum
Tarek Müller - Talentday Präsentation zum Unternehmertum
 
Carina Bittihn & Linda Dettmann - Same Same but Different - code.talks 2015
 Carina Bittihn & Linda Dettmann - Same Same but Different - code.talks 2015 Carina Bittihn & Linda Dettmann - Same Same but Different - code.talks 2015
Carina Bittihn & Linda Dettmann - Same Same but Different - code.talks 2015
 
Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...
Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...
Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...
 
Lush Final
Lush FinalLush Final
Lush Final
 
How to Use a Webinar to Launch Your Digital Product
How to Use a Webinar to Launch Your Digital ProductHow to Use a Webinar to Launch Your Digital Product
How to Use a Webinar to Launch Your Digital Product
 
Dr. Florian Krause - Der Kunde im Fokus: Personalisierte Aussteuerung von Inh...
Dr. Florian Krause - Der Kunde im Fokus: Personalisierte Aussteuerung von Inh...Dr. Florian Krause - Der Kunde im Fokus: Personalisierte Aussteuerung von Inh...
Dr. Florian Krause - Der Kunde im Fokus: Personalisierte Aussteuerung von Inh...
 
Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....
Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....
Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....
 
How to Build a Membership Site: a Comprehensive Guide
How to Build a Membership Site: a Comprehensive GuideHow to Build a Membership Site: a Comprehensive Guide
How to Build a Membership Site: a Comprehensive Guide
 
ABOUT YOU get on board
ABOUT YOU get on boardABOUT YOU get on board
ABOUT YOU get on board
 
The Guide to Kickstarter and Crowdfunding
The Guide to Kickstarter and CrowdfundingThe Guide to Kickstarter and Crowdfunding
The Guide to Kickstarter and Crowdfunding
 
LUSH
LUSH LUSH
LUSH
 
Attending Conferences: How it Can Make a Difference for Your Business
Attending Conferences: How it Can Make a Difference for Your BusinessAttending Conferences: How it Can Make a Difference for Your Business
Attending Conferences: How it Can Make a Difference for Your Business
 
Multi Channel Marketing Operation - Webinar Digital Summer School
Multi Channel Marketing Operation - Webinar Digital Summer SchoolMulti Channel Marketing Operation - Webinar Digital Summer School
Multi Channel Marketing Operation - Webinar Digital Summer School
 
Lush presentation
Lush presentationLush presentation
Lush presentation
 
Lush presentation FINAL
Lush presentation FINALLush presentation FINAL
Lush presentation FINAL
 
ABOUT YOU komm an Bord
ABOUT YOU komm an BordABOUT YOU komm an Bord
ABOUT YOU komm an Bord
 
Case study: Lush
Case study: LushCase study: Lush
Case study: Lush
 

Semelhante a Marcel Hild - Spryker (e)commerce framework als Alternative zu traditioneller Shop-Software - code.talks 2015

Customer Centric View of Best Practices in Software Monetization
Customer Centric View of Best Practices in Software MonetizationCustomer Centric View of Best Practices in Software Monetization
Customer Centric View of Best Practices in Software Monetization
team-WIBU
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
ghodgkinson
 
Beyond API Spray & Pray: Developer Portals in Digital Transformation
Beyond API Spray & Pray: Developer Portals in Digital TransformationBeyond API Spray & Pray: Developer Portals in Digital Transformation
Beyond API Spray & Pray: Developer Portals in Digital Transformation
Pronovix
 
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel Corporation
 
Introducing enhancement framework.doc
Introducing enhancement framework.docIntroducing enhancement framework.doc
Introducing enhancement framework.doc
Kranthi Kumar
 

Semelhante a Marcel Hild - Spryker (e)commerce framework als Alternative zu traditioneller Shop-Software - code.talks 2015 (20)

PureApplication: Devops and Urbancode
PureApplication: Devops and UrbancodePureApplication: Devops and Urbancode
PureApplication: Devops and Urbancode
 
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led ConnectivityMuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
MuleSoft Surat Meetup#39 - Pragmatic API Led Connectivity
 
Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?Which Application Modernization Pattern Is Right For You?
Which Application Modernization Pattern Is Right For You?
 
Application Security Management with ThreadFix
Application Security Management with ThreadFixApplication Security Management with ThreadFix
Application Security Management with ThreadFix
 
Platform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterprisePlatform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterprise
 
Customer Centric View of Best Practices in Software Monetization
Customer Centric View of Best Practices in Software MonetizationCustomer Centric View of Best Practices in Software Monetization
Customer Centric View of Best Practices in Software Monetization
 
O2 Presentation Sdp Event
O2 Presentation Sdp EventO2 Presentation Sdp Event
O2 Presentation Sdp Event
 
Anypoint platform architecture and components
Anypoint platform architecture and componentsAnypoint platform architecture and components
Anypoint platform architecture and components
 
Meetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfMeetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdf
 
Panel Discussion SAP DevOps - ReleaseOwl
Panel Discussion SAP DevOps - ReleaseOwlPanel Discussion SAP DevOps - ReleaseOwl
Panel Discussion SAP DevOps - ReleaseOwl
 
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: SaaS
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: SaaSAMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: SaaS
AMIS Oracle OpenWorld en Code One Review 2018 - Pillar 2: SaaS
 
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - SaaS and Standard Applica...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - SaaS and Standard Applica...AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - SaaS and Standard Applica...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - SaaS and Standard Applica...
 
Serverless projects at Myplanet
Serverless projects at MyplanetServerless projects at Myplanet
Serverless projects at Myplanet
 
Report on xtuple ERP Software
Report on xtuple ERP SoftwareReport on xtuple ERP Software
Report on xtuple ERP Software
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Beyond API Spray & Pray: Developer Portals in Digital Transformation
Beyond API Spray & Pray: Developer Portals in Digital TransformationBeyond API Spray & Pray: Developer Portals in Digital Transformation
Beyond API Spray & Pray: Developer Portals in Digital Transformation
 
Agile ALM with Traceability: Release of codeBeamer 5.5
Agile ALM with Traceability: Release of codeBeamer 5.5 Agile ALM with Traceability: Release of codeBeamer 5.5
Agile ALM with Traceability: Release of codeBeamer 5.5
 
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
Atmel - Next-Generation IDE: Maximizing IP Reuse [WHITE PAPER]
 
STR-PRES-Hybris eCommerce Capabilities-SEP2015- ENG
STR-PRES-Hybris eCommerce Capabilities-SEP2015- ENGSTR-PRES-Hybris eCommerce Capabilities-SEP2015- ENG
STR-PRES-Hybris eCommerce Capabilities-SEP2015- ENG
 
Introducing enhancement framework.doc
Introducing enhancement framework.docIntroducing enhancement framework.doc
Introducing enhancement framework.doc
 

Mais de AboutYouGmbH

Mais de AboutYouGmbH (20)

Tech talk 01.06.2017
Tech talk 01.06.2017Tech talk 01.06.2017
Tech talk 01.06.2017
 
Retention Strategies in Mobile E-Commerce
Retention Strategies in Mobile E-CommerceRetention Strategies in Mobile E-Commerce
Retention Strategies in Mobile E-Commerce
 
Rethinking Fashion E-Commerce
Rethinking Fashion E-CommerceRethinking Fashion E-Commerce
Rethinking Fashion E-Commerce
 
Niels Leenheer - Weird browsers - code.talks 2015
Niels Leenheer - Weird browsers - code.talks 2015Niels Leenheer - Weird browsers - code.talks 2015
Niels Leenheer - Weird browsers - code.talks 2015
 
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
 
Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...
Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...
Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...
 
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
 
Kai Voigt - Big Data zum Anfassen - code.talks 2015
Kai Voigt - Big Data zum Anfassen - code.talks 2015Kai Voigt - Big Data zum Anfassen - code.talks 2015
Kai Voigt - Big Data zum Anfassen - code.talks 2015
 
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
 
Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Wolfram Kriesing - EcmaScript6 for real - code.talks 2015Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
 
Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
 Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c... Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
 
Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015
 Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015 Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015
Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015
 
Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ...
 Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ... Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ...
Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ...
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015
 
Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal...
 Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal... Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal...
Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal...
 
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
 Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t... Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
Robert Kubis - gRPC - boilerplate to high-performance scalable APIs - code.t...
 
Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015
Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015
Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015
 
Freya Oehle - The bare necessities - improvised ingenuity - code.talks 2015
 Freya Oehle - The bare necessities - improvised ingenuity - code.talks 2015 Freya Oehle - The bare necessities - improvised ingenuity - code.talks 2015
Freya Oehle - The bare necessities - improvised ingenuity - code.talks 2015
 
Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...
Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...
Artur Borycki - Beyond Lambda - how to get from logical to physical - code.ta...
 
Etiene Dalcol - Web development with Lua Programming Language - code.talks 2015
Etiene Dalcol - Web development with Lua Programming Language - code.talks 2015Etiene Dalcol - Web development with Lua Programming Language - code.talks 2015
Etiene Dalcol - Web development with Lua Programming Language - code.talks 2015
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 

Marcel Hild - Spryker (e)commerce framework als Alternative zu traditioneller Shop-Software - code.talks 2015

  • 2. 2015 Spryker Systems GmbH /About Spryker 2 1. Our Story 2. The market and how we fit in 3. Software architecture 4. Spryker’s technology concept 5. Delivery
  • 3. Our Story 2015 Spryker Systems GmbH /About Spryker 3 DEVELOPMENT Ambitious commerce projects Appropriate softwarenotavailable Internalframework solution 100+ online businessmodels launched October 2014: Spryker is founded IMPLEMENTATIONEXAMPLES B2B Webshop with complex business logics Largest Meal Ingredients deliveryin EU, 380% YTY growth Real Estate Marketplace 33 countries in 15months CategoryLeaderfor Fashion in Brazil Largest Furniture Shopping Club in Europe Meal Deliveryin EU and SE Asia, $740 Mio. GMV
  • 4. Spryker solves a lot of common issues 2015 Spryker Systems GmbH /About Spryker 4 Common issues of shop software Solutions integrated in Spryker Full-page cache Separation of frontend and backend Website drawsfromdatabase Frontend drawsfromKey ValueStorage Entity AttributeValue (EAV) model Extend DBSchema + JSON values Unnecessary code components& features Lean code baseand modular features Monolithic approach Modular monolith
  • 5. 2015 Spryker Systems GmbH /About Spryker 5 1. Our Story 2. The market and how we fit in 3. Software architecture 4. Spryker’s technology concept 5. Delivery
  • 6. ERP CRM PIM CMS … OMS Shop Shop Shop E-Commerce Technology matures 2015 Spryker Systems GmbH /About Spryker 6 1995 - 2002 2003 - 2013 2014 + E-commerce = additional sales channel E-commerce = new business model E-commerce = part of an ecosystem 1st Generation ERP-focused setup 2nd Generation Features move into Shop 3rd Generation Features move outin Ecosystem ERP ERP CRM PIM CMS … OMS CRMPIM CMS… OMS + channels + devices + complexity + content + uncertainty
  • 7. STANDARD SOFTWARE low risk but static Enabling tomorrow’stechnologyleaders 2015 Spryker Systems GmbH /About Spryker 7 Technologyas Value Driver FRAMEWORK Individuality& differentiation Reduced risks & ownership costs DegreeofIndividualization IN-HOUSE PROJECTS agile but expensive
  • 8. 2015 Spryker Systems GmbH /About Spryker 8 1. Our Story 2. The market and how we fit in 3. Software architecture 4. Spryker’s technology concept 5. Delivery
  • 9. Building Blocks - technologies 2015 Spryker Systems GmbH /About Spryker 9 Spryker uses conservativestateofthe art technologies
  • 10. Technology Architecture 2015 Spryker Systems GmbH /About Spryker 10
  • 11. Technology Architecture 2015 Spryker Systems GmbH /About Spryker 11
  • 12. Technology Architecture 2015 Spryker Systems GmbH /About Spryker 12
  • 13. Technology Architecture 2015 Spryker Systems GmbH /About Spryker 13
  • 14. Technology Architecture – Mobile / API 2015 Spryker Systems GmbH /About Spryker 14 ZED backend Search Engine Sessions KV Storage REST API public API HYBRID MOBILE APP AngularJS YVES frontend Setup ofmobilefeatures as anadditional frontendwithsame backendlogics REST API has samearchitecture as Yves anduses the sameRPC calls NativeandHybrid Appscan be build againstthisinterface Offers samebenefitsas Yves:speed, simplicity(nobusinesslogic),scalability RPCRPC
  • 15. Scaling (implementation example) 2015 Spryker Systems GmbH /About Spryker 15 Horizontal+ vertical scalingenabled Allowsfor rolling deployment+Zero Downtime DB /Redis / Elasticsearch as high availableservices Sampleinfrastructure providedviasaltstack templates Yves load-balancer Zed load-balancer Yves phpApp Yves phpApp Yves phpApp Zed Main phpApp* Zed phpApp DB Redis Elastic search scale read / writeread / write write read read *Zed main server only: run cronjobs and post deployment hooks scale Master-master or master-slave configuration
  • 16. Spryker enables micro-services 2015 Spryker Systems GmbH /About Spryker 16 ZED Catalog Frameworkapproach allowsfor independent services Decoupledbundlesand definedAPIs make integrationandseparation intoservices easy PostgresDB RPC YVES Catalog ZED OMS MySQL DB ZED B2B Legacy DB ERP YVES Cart RPC Merchant Portal RPC
  • 17. 2015 Spryker Systems GmbH /About Spryker 17 1. Our Story 2. The market and how we fit in 3. Software architecture 4. Spryker’s technology concept 5. Delivery
  • 18. Spryker Bundles 2015 Spryker Systems GmbH /About Spryker 18 Customer CMS Checkout Catalog Cart Availability Auth Acl Mail Locale Item Grouper Invoice Glossary Distributor Discount Country Sales Queue Product Option Product Category Product Price Payment Oms Wishlist User Url Storage Stock Shipment Session Search All important features: Spryker comes with 100+ bundles Easy and fast updates: each bundlehasits own versioning Consistent: each bundlehasthe same basic architecture Flexible & adaptable: bundledependencies are reduced toa minimum
  • 19. Bundle Dependency Management 2015 Spryker Systems GmbH /About Spryker 19 How dependencies are programmed stock bundle availability bundle OMS bundle product bundle cart bundle checkout bundle stock bundle availability bundle OMS bundle product bundle cart bundle checkout bundle availability –checkout connector bundle availability –cart connector bundle What theworkflow looks like This way, dependencies are always kept to a minimumand the setup stays agile
  • 20. Bundle Dependency Management 2015 Spryker Systems GmbH /About Spryker 20 AGILITY: minimaldependenciesbetween bundles,dependencymanagementvia composer LEAN SETUP: only include needed bundles in project – keeps complexity as low as possible VERSIONING: upgradesonbundlelevel - efficient: onlyneeded bundles - fast: quicker updatesavailablewhere needed, nowaitingfor next version - simple: nostiff andcomplexupgrading of entire framework
  • 21. Spryker bundles concept 2015 Spryker Systems GmbH /About Spryker 21 bundles= functionalunits,e.g. cart, checkout,product each bundleconsistsofup to4 layers intersectionof layerandbundle= box PRESENTATION LAYER: templates for Zed admin gui COMMUNICATIONSLAYER: controllers, UI-elements and plugins BUSINESS LAYER: businessand persistence logic PERSISTENCE LAYER: (SQL) queries, entities and databaseschema
  • 22. Spryker Bundles 2015 Spryker Systems GmbH /About Spryker 22 Customer CMS Checkout Catalog Cart Availability Auth Acl Mail Locale Item Grouper Invoice Glossary Distributor Discount Country Sales Queue Product Option Product Category Product Price Payment Oms Wishlist User Url Storage Stock Shipment Session Search
  • 23. Yves client layer 2015 Spryker Systems GmbH /About Spryker 23 ZED backend RPC Yves only consistsof templates, controllers, service providers Possible to build another Yves with another framework and stilluse Spryker Client is core functionality for theshopfrontend Client acts as asa facade and delegates calls to Zed, Search and Storage SEARCH STORAGE STUB SEARCH API STORAGE API GATEWAY CARTCLIENT JSON Query Redis Protocol YVES Controller, Themes CLIENT
  • 24. PRESENTATION LAYER COMMUNICATIONSLAYER BUSINESS LAYER PERSISTENCE LAYER Spryker bundles concept 2015 Spryker Systems GmbH /About Spryker 24 bundles= functionalunits,e.g. cart, checkout,product each bundleconsistsofup to4 layers intersectionof layerandbundle= box CART BUNDLE CHECKOUT BUNDLE PRODUCT BUNDLE
  • 25. Separated core, project & localized code 2015 Spryker Systems GmbH /About Spryker 25 PRESENTATION LAYER COMMUNICATIONSLAYER BUSINESS LAYER PERSISTENCE LAYER CORELEVEL PROJECTLEVEL STORELEVEL Spryker bundles clientimplementation US, DE, UK, FR, CA, …
  • 26. Separated core, project & localized code 2015 Spryker Systems GmbH /About Spryker 26 Implementation example of the three levels extractof implemented corebundles custom projects added to adapted corebundles custom bundlesfor specific stores/ localized shops Factories allow to extend all classes. Extension of thedependency container allows to replace any class. COREPROJECTSTORE product bundle cart bundle stock bundle MySpecial1 bundle MySpecial2 bundle product bundle cart bundle product bundle_DE product bundle_FR MySpecial2 bundle_FR
  • 27. Building Blocks - principles 2015 Spryker Systems GmbH /About Spryker 27 Spryker is good software craftsmanship: SOLID - Clean Code – Separation of Concerns
  • 28. Software Principles & Patterns 2015 Spryker Systems GmbH /About Spryker 28 SOLID: Single Responsibility Principle There should never be more than one reason for a class to change default principle for each class is defined in Spryker single responsibility principle is applied on bundle, class, and method level example : facade classes represent the internal API of a bundle and the only point of access to a bundle facades areflat and stateless classes - their only responsibility is to orchestrate the incoming requests to the business logic implemented in the bundle
  • 29. Software Principles & Patterns 2015 Spryker Systems GmbH /About Spryker 29 SOLID: Interface Segregation Principle Many client specific interfaces are better than one general interface in Spryker this is used for facades in order to substitute a bundle with a new one, its facade must contain the same operations so that it doesn’t break the contract established with other bundles each bundle ships with a set of interfaces for facades of the required bundles
  • 30. Software Principles & Patterns 2015 Spryker Systems GmbH /About Spryker 30 Factory & Locator Pattern Factories are used to instantiate new classes inside a bundle allows for differentimplementations on core, project & store level Locators used to access other bundles allows for differentimplementations on core, project & store level decreases dependency between bundles
  • 31. Order Management in Spryker 2015 Spryker Systems GmbH /About Spryker 31 Other Systems Spryker Shop ERP Shop ERP = WMS pick & pack ship return refund payment order reality Shop and ERP: black box with high potential for errors Spryker allows for separation of concerns, order processed in shop (optional w/ Spryker) (recommended w/ Spryker)
  • 32. Order Management in Spryker 2015 Spryker Systems GmbH /About Spryker 32 Process model design / State machines new invoice created waiting for payment payment received clarify reminder fulfillment initialized Event: Timeout 14days Event: Payment received Command: Initiate fullfillment Event: onEnter <<manual>>Button on screen Event: PaymentReceived Conditions Manual waiting for capture capture failure capture success Event: onEnter Command: captureAmount Condition: CaptureCondition waiting for capture capture failure capture success manualmanual
  • 33. Order Management in Spryker 2015 Spryker Systems GmbH /About Spryker
  • 34. Order Management in Spryker 2015 Spryker Systems GmbH /About Spryker
  • 35. Order Management in Spryker 2015 Spryker Systems GmbH /About Spryker
  • 36. Order Management in Spryker 2015 Spryker Systems GmbH /About Spryker
  • 37. Order Management in Spryker 2015 Spryker Systems GmbH /About Spryker
  • 38. Order Management in Spryker Screenshots / Images available separately as well as state machine demo and source code 2015 Spryker Systems GmbH /About Spryker
  • 39. 2015 Spryker Systems GmbH /About Spryker 39 1. Our Story 2. The market and how we fit in 3. Software architecture 4. Spryker’s technology concept 5. Delivery
  • 40. Spryker delivery contents 2015 Spryker Systems GmbH /About Spryker 40 GIT repositories:all bundles as separate components Infrastructure:deploymenttemplates via saltstack Demo-shop viaDeveloper-VM: full stack development shop templatewith all components SprykerAcademy: access to documentation and projectcontrollingtemplates
  • 41. What makes development with Spryker so fast? 2015 Spryker Systems GmbH /About Spryker 41 Architectural decisions are provided by the framework Best practices from over 100 implementations included in the technology Consequent de-couplingof bundles supports fastiterations Full IDE auto-completion “No magicmethods” enable easy debugging Complete stack on developer laptop Coherent architecture (Frontend, Backend, Extensions)
  • 42. Technology Summary 2015 Spryker Systems GmbH /About Spryker 42 Framework approach Modular monolith Frontend / Backend separation Symfony/ Silex based PHP Application Developer friendly
  • 43. 2015 Spryker Systems GmbH /About Spryker 43 A proventechnology built in real- world projects for ambitious and non-standard business models.
  • 44. Spryker Systems GmbH Berlin, Germany Sao Paulo, Brazil San Jose, USA info@spryker.com PhoneDe: +49 40 328 929 631 PhoneUS: +1 408 952 9710 www.spryker.com www.kassenzone.de www.goto.project-a.com 44