SlideShare a Scribd company logo
Introduction
Who?
Fabian Wesner
$year >= 2012 CTO @ Project A Ventures
$year == 2011 CTO @ Rocket Internet
$year == 2010 Lead developer @ Zalando
$year <= 2009 Entrepreneur and Freelancer

Project A Ventures
Building successful companies.

Company Builder with focus on Internet, advertising technology and
mobile.
www.project-a.com
Powered by Yves & Zed
Architecture
Bird‘s eye view
Layered architecture
Structured code with Bundles and Packages
Dependency management with composer
- Code is structured in packages
- Packages may require each other
- We use composer to manage dependencies

composer.json of dwh-package

{
    "name": "project-a/dwh-package",
    "autoload": {
        "psr-0": { "ProjectA": "/src" }
    },
    "require": {
        "php": ">=5.4.0",
        "project-a/auth-package": ">=0.0.10",
        "project-a/library-package": ">=0.0.27"
    }
}

How to update Yves & Zed?
(1) add a new version to a composer.json
(2) run php composer.phar install
Dependency validation
Zed GUI
Zed user interface

Kendo UI + Bootstrap + jQuery
minified and merged with Grunt
Cronjobs
Scalable job management with Jenkins
/* subscribe users for newsletters */
$jobs[] = array(
'name'
=> 'send_newsletter_subscription_queue',
'command' => '$PHP_BIN $CLI_PATH/
index.php --module=newsletter
--controller=cronjob
--action=sendsubscriptionqueue',
'schedule' => '*/2 * * * *',
'enable'
=> true,
'stores'
=> $all_stores,
);
/* -- MAIL QUEUE -- */
$jobs[] = array(
'name'
=> 'send_queued_mails',
'command' => '$PHP_BIN $CLI_PATH/
index.php --module=mail
-- controller=cronjob
--action=send-queued-mails',
'schedule' => '* * * * *',
'enable'
=> true,
'stores'
=> $all_stores,
);
/* -- DUMP DB -- */
$jobs[] = array(
'name'
=> 'generate_database_dump',
'command' => '$PHP_BIN $CLI_PATH/
index.php --module=dbdump
--controller=cronjob --action=execute',
'schedule' => '0 0 * * *',
'enable'
=> true,

deployment
Logging
Logging with Lumberjack
Yves & Zed‘s Big Data infrastructure
Automated processing of orders
Visualization of business logic
protected function addTransitions()
{
$this->setup->addTransition(
self::STATE_NEW,
self::STATE_PREAUTHORIZED,
self::EVENT_START_PAYMENT,
self::RULE_PAYMENT_TRANSACTION_APPROVED);
$this->setup->addTransition(
self::STATE_NEW,
self::STATE_INVALID,
self::EVENT_START_PAYMENT);
}
protected function addCommands()
{
$preAuthorizeCommand = $this->factory
->getModelOrderprocessCommandPaymentPreAuthorization();
$this->setup->addCommand(
self::STATE_NEW,
self::EVENT_START_PAYMENT,
$preAuthorizeCommand);
}
protected function addDefinitions()
{
$subProcess = $this->factory
->getModelOrderprocessDefinitionSubProcessCancellation()
$this->setup->addDefinition($subProcess);
}

PHP

Graph
Automatic processing of thousands of orders per day
Trigger events
Used in several controllers to start the state machine
$this->facadeSales->triggerEvent(„start payment“,items);
$this->facadeSales->triggerEventBulk($eventName,items);

Commands
Classes with logic which are triggered from the state machine
class SaoZedPaymentComponentCommand
PreAuthorization
{
public function __invoke ($orderEntity, $context)
{ ... }
}

Check conditions
Decision which way to go
class SaoZedPaymentComponentCondition
TransactionApproved
{
/** @return bool */
public function check($orderItem, $context)
{ ... }
}
+++ More details: Talk of Oliver Tischlinger tomorrow „Statemachine – Das Mittel gegen Flags!“ +++
Data-Warehouse
ETL / job scheduler

<job id="load-order-item-status">
<description>Copies the order item status table into the tmp table
</description>
<commands>
<run-sql-file
file-name="order-statuses/create-order-item-status-tmp-table.sql"
echo-queries="false"/>
<load-from-mysql mysql-database="zed"
file-name="order-statuses/load-order-item-status.sql"
target-table="tmp.order_item_status"/>
</commands>
</job>
<job id="transform-order-item-status">
<description>Copies the order item status table into the dim schema
</description>
<dependencies>
<dependency job="load-order-item-status"/>
<dependency job="load-order-item-status-mapping"/>
</dependencies>
<commands>
<run-sql-file
file-name="order-statuses/transform-order-item-status.sql"
echo-queries="false"/>
</commands>
</job>
Order status mapping
Every color has a
simple meaning!
Not paid
Item returned
Paid
etc.
<perspective name="Sales">
<status-group name="Not paid"
description="The items are not yet paid"
color="#557799">
<status ref="shipped"/>
<status ref="waiting for payment"/>
<status ref="capture"/>
</status-group>
<status-group name="Paid"
description="The items are paid"
color="#559955">
<status ref="paid in money collect"/>
<status ref="clarify refund overpayment"/>
<status ref="closed"/>
</status-group>
</perspective>
</status-mapping>
Entity–relationship model
DWH architecture

ETL

DWH

Cubes

Reports
Thank you!

More Related Content

Viewers also liked

Nils Seebach - Was ist mein Onlineshop wert? - Bewertungen im E-Commerce
Nils Seebach - Was ist mein Onlineshop wert? - Bewertungen im E-CommerceNils Seebach - Was ist mein Onlineshop wert? - Bewertungen im E-Commerce
Nils Seebach - Was ist mein Onlineshop wert? - Bewertungen im E-Commerce
eCommerce_Day
 
2 BHK Luxury Apartment in Wagholi, Pune - Marvel Fria II
2 BHK Luxury Apartment in Wagholi, Pune - Marvel Fria II2 BHK Luxury Apartment in Wagholi, Pune - Marvel Fria II
2 BHK Luxury Apartment in Wagholi, Pune - Marvel Fria II
Marvel Realtors
 
Bcil Zedwoods Value Adds Final
Bcil Zedwoods  Value Adds FinalBcil Zedwoods  Value Adds Final
Bcil Zedwoods Value Adds Final
BCIL
 
Zed Earth Brochure
Zed Earth BrochureZed Earth Brochure
Zed Earth Brochure
ZEDhabitats
 
Pune Property- "Marvel Fria", Wagholi
Pune Property- "Marvel Fria", WagholiPune Property- "Marvel Fria", Wagholi
Pune Property- "Marvel Fria", Wagholi
Flatons Advisors
 
10042010 Mlbviponline
10042010 Mlbviponline10042010 Mlbviponline
10042010 Mlbviponlinegueste5b1381
 
Onlineshop als integraler Bestandteil der Unternehmensstrategie
Onlineshop als integraler Bestandteil der UnternehmensstrategieOnlineshop als integraler Bestandteil der Unternehmensstrategie
Onlineshop als integraler Bestandteil der Unternehmensstrategie
schukai GmbH
 
eCommerce in Deutschland - Chancen und Herausforderungen für Hersteller von K...
eCommerce in Deutschland - Chancen und Herausforderungen für Hersteller von K...eCommerce in Deutschland - Chancen und Herausforderungen für Hersteller von K...
eCommerce in Deutschland - Chancen und Herausforderungen für Hersteller von K...Aquarius Digital GmbH
 
7 Tipps und 3 Beispiele für perfekte Onlineshop-Inhalte
7 Tipps und 3 Beispiele für perfekte Onlineshop-Inhalte7 Tipps und 3 Beispiele für perfekte Onlineshop-Inhalte
7 Tipps und 3 Beispiele für perfekte Onlineshop-Inhalte
z19_butsch
 
Online verkaufen per webshop onlineshop-e-shop-internetshop
Online verkaufen per webshop onlineshop-e-shop-internetshopOnline verkaufen per webshop onlineshop-e-shop-internetshop
Online verkaufen per webshop onlineshop-e-shop-internetshop
Thor Alexander
 
Kritische Erfolgsfaktoren im Onlineshop: Zahlungs- und ERP-System Integrationen
Kritische Erfolgsfaktoren im Onlineshop: Zahlungs- und ERP-System IntegrationenKritische Erfolgsfaktoren im Onlineshop: Zahlungs- und ERP-System Integrationen
Kritische Erfolgsfaktoren im Onlineshop: Zahlungs- und ERP-System IntegrationenCarpathia AG
 
Zed Woods Brochure
Zed Woods BrochureZed Woods Brochure
Zed Woods Brochure
ZEDhabitats
 
Einführung onlinehandel glocal-consult
Einführung onlinehandel glocal-consultEinführung onlinehandel glocal-consult
Einführung onlinehandel glocal-consultStefan Stengel
 
Der Content-Marketing-Fitness-Pass für Organisationen
Der Content-Marketing-Fitness-Pass für OrganisationenDer Content-Marketing-Fitness-Pass für Organisationen
Der Content-Marketing-Fitness-Pass für Organisationen
Kai Heddergott
 
Packende AdWords-Anzeigentexte erstellen, testen und optimieren
Packende AdWords-Anzeigentexte erstellen, testen und optimierenPackende AdWords-Anzeigentexte erstellen, testen und optimieren
Packende AdWords-Anzeigentexte erstellen, testen und optimieren
Crealytics
 
E-Commerce, nicht Onlineshop
E-Commerce, nicht OnlineshopE-Commerce, nicht Onlineshop
E-Commerce, nicht Onlineshop
Connected-Blog
 
Mehr Umsatz, durch eine intelligente Such-Software im OnlineShop!
Mehr Umsatz, durch eine intelligente Such-Software im OnlineShop!Mehr Umsatz, durch eine intelligente Such-Software im OnlineShop!
Mehr Umsatz, durch eine intelligente Such-Software im OnlineShop!eCommerce Lounge
 
Bvh ecommerce day e commerce trends
Bvh ecommerce day e commerce trends Bvh ecommerce day e commerce trends
Bvh ecommerce day e commerce trends
Joachim Graf
 

Viewers also liked (18)

Nils Seebach - Was ist mein Onlineshop wert? - Bewertungen im E-Commerce
Nils Seebach - Was ist mein Onlineshop wert? - Bewertungen im E-CommerceNils Seebach - Was ist mein Onlineshop wert? - Bewertungen im E-Commerce
Nils Seebach - Was ist mein Onlineshop wert? - Bewertungen im E-Commerce
 
2 BHK Luxury Apartment in Wagholi, Pune - Marvel Fria II
2 BHK Luxury Apartment in Wagholi, Pune - Marvel Fria II2 BHK Luxury Apartment in Wagholi, Pune - Marvel Fria II
2 BHK Luxury Apartment in Wagholi, Pune - Marvel Fria II
 
Bcil Zedwoods Value Adds Final
Bcil Zedwoods  Value Adds FinalBcil Zedwoods  Value Adds Final
Bcil Zedwoods Value Adds Final
 
Zed Earth Brochure
Zed Earth BrochureZed Earth Brochure
Zed Earth Brochure
 
Pune Property- "Marvel Fria", Wagholi
Pune Property- "Marvel Fria", WagholiPune Property- "Marvel Fria", Wagholi
Pune Property- "Marvel Fria", Wagholi
 
10042010 Mlbviponline
10042010 Mlbviponline10042010 Mlbviponline
10042010 Mlbviponline
 
Onlineshop als integraler Bestandteil der Unternehmensstrategie
Onlineshop als integraler Bestandteil der UnternehmensstrategieOnlineshop als integraler Bestandteil der Unternehmensstrategie
Onlineshop als integraler Bestandteil der Unternehmensstrategie
 
eCommerce in Deutschland - Chancen und Herausforderungen für Hersteller von K...
eCommerce in Deutschland - Chancen und Herausforderungen für Hersteller von K...eCommerce in Deutschland - Chancen und Herausforderungen für Hersteller von K...
eCommerce in Deutschland - Chancen und Herausforderungen für Hersteller von K...
 
7 Tipps und 3 Beispiele für perfekte Onlineshop-Inhalte
7 Tipps und 3 Beispiele für perfekte Onlineshop-Inhalte7 Tipps und 3 Beispiele für perfekte Onlineshop-Inhalte
7 Tipps und 3 Beispiele für perfekte Onlineshop-Inhalte
 
Online verkaufen per webshop onlineshop-e-shop-internetshop
Online verkaufen per webshop onlineshop-e-shop-internetshopOnline verkaufen per webshop onlineshop-e-shop-internetshop
Online verkaufen per webshop onlineshop-e-shop-internetshop
 
Kritische Erfolgsfaktoren im Onlineshop: Zahlungs- und ERP-System Integrationen
Kritische Erfolgsfaktoren im Onlineshop: Zahlungs- und ERP-System IntegrationenKritische Erfolgsfaktoren im Onlineshop: Zahlungs- und ERP-System Integrationen
Kritische Erfolgsfaktoren im Onlineshop: Zahlungs- und ERP-System Integrationen
 
Zed Woods Brochure
Zed Woods BrochureZed Woods Brochure
Zed Woods Brochure
 
Einführung onlinehandel glocal-consult
Einführung onlinehandel glocal-consultEinführung onlinehandel glocal-consult
Einführung onlinehandel glocal-consult
 
Der Content-Marketing-Fitness-Pass für Organisationen
Der Content-Marketing-Fitness-Pass für OrganisationenDer Content-Marketing-Fitness-Pass für Organisationen
Der Content-Marketing-Fitness-Pass für Organisationen
 
Packende AdWords-Anzeigentexte erstellen, testen und optimieren
Packende AdWords-Anzeigentexte erstellen, testen und optimierenPackende AdWords-Anzeigentexte erstellen, testen und optimieren
Packende AdWords-Anzeigentexte erstellen, testen und optimieren
 
E-Commerce, nicht Onlineshop
E-Commerce, nicht OnlineshopE-Commerce, nicht Onlineshop
E-Commerce, nicht Onlineshop
 
Mehr Umsatz, durch eine intelligente Such-Software im OnlineShop!
Mehr Umsatz, durch eine intelligente Such-Software im OnlineShop!Mehr Umsatz, durch eine intelligente Such-Software im OnlineShop!
Mehr Umsatz, durch eine intelligente Such-Software im OnlineShop!
 
Bvh ecommerce day e commerce trends
Bvh ecommerce day e commerce trends Bvh ecommerce day e commerce trends
Bvh ecommerce day e commerce trends
 

Similar to Yves & Zed @ Developer Conference 2013

Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
Lindsay Holmwood
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
Bo-Yi Wu
 
Quality assurance for php projects with PHPStorm
Quality assurance for php projects with PHPStormQuality assurance for php projects with PHPStorm
Quality assurance for php projects with PHPStorm
Michelangelo van Dam
 
Micro app-framework - NodeLive Boston
Micro app-framework - NodeLive BostonMicro app-framework - NodeLive Boston
Micro app-framework - NodeLive Boston
Michael Dawson
 
Micro app-framework
Micro app-frameworkMicro app-framework
Micro app-framework
Michael Dawson
 
Python from zero to hero (Twitter Explorer)
Python from zero to hero (Twitter Explorer)Python from zero to hero (Twitter Explorer)
Python from zero to hero (Twitter Explorer)
Yuriy Senko
 
Refresh Austin - Intro to Dexy
Refresh Austin - Intro to DexyRefresh Austin - Intro to Dexy
Refresh Austin - Intro to Dexy
ananelson
 
WCLA12 JavaScript
WCLA12 JavaScriptWCLA12 JavaScript
WCLA12 JavaScript
Jeffrey Zinn
 
Building and deploying React applications
Building and deploying React applicationsBuilding and deploying React applications
Building and deploying React applications
Astrails
 
Playing with php_on_azure
Playing with php_on_azurePlaying with php_on_azure
Playing with php_on_azureCEDRIC DERUE
 
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
MUG-Lyon Microsoft User Group
 
[Bristol WordPress] Supercharging WordPress Development
[Bristol WordPress] Supercharging WordPress Development[Bristol WordPress] Supercharging WordPress Development
[Bristol WordPress] Supercharging WordPress Development
Adam Tomat
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12
Michelangelo van Dam
 
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...King Foo
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
Alan Pinstein
 
Introducing PHP Data Objects
Introducing PHP Data ObjectsIntroducing PHP Data Objects
Introducing PHP Data Objectswebhostingguy
 
Scala based Lift Framework
Scala based Lift FrameworkScala based Lift Framework
Scala based Lift Frameworkvhazrati
 
Overview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web FrameworkOverview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web Framework
IndicThreads
 
Overview Of Lift Framework
Overview Of Lift FrameworkOverview Of Lift Framework
Overview Of Lift Framework
Xebia IT Architects
 

Similar to Yves & Zed @ Developer Conference 2013 (20)

Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
 
Pyramid deployment
Pyramid deploymentPyramid deployment
Pyramid deployment
 
Quality assurance for php projects with PHPStorm
Quality assurance for php projects with PHPStormQuality assurance for php projects with PHPStorm
Quality assurance for php projects with PHPStorm
 
Micro app-framework - NodeLive Boston
Micro app-framework - NodeLive BostonMicro app-framework - NodeLive Boston
Micro app-framework - NodeLive Boston
 
Micro app-framework
Micro app-frameworkMicro app-framework
Micro app-framework
 
Python from zero to hero (Twitter Explorer)
Python from zero to hero (Twitter Explorer)Python from zero to hero (Twitter Explorer)
Python from zero to hero (Twitter Explorer)
 
Refresh Austin - Intro to Dexy
Refresh Austin - Intro to DexyRefresh Austin - Intro to Dexy
Refresh Austin - Intro to Dexy
 
WCLA12 JavaScript
WCLA12 JavaScriptWCLA12 JavaScript
WCLA12 JavaScript
 
Building and deploying React applications
Building and deploying React applicationsBuilding and deploying React applications
Building and deploying React applications
 
Playing with php_on_azure
Playing with php_on_azurePlaying with php_on_azure
Playing with php_on_azure
 
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
 
[Bristol WordPress] Supercharging WordPress Development
[Bristol WordPress] Supercharging WordPress Development[Bristol WordPress] Supercharging WordPress Development
[Bristol WordPress] Supercharging WordPress Development
 
Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12
 
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
Introducing PHP Data Objects
Introducing PHP Data ObjectsIntroducing PHP Data Objects
Introducing PHP Data Objects
 
Scala based Lift Framework
Scala based Lift FrameworkScala based Lift Framework
Scala based Lift Framework
 
Overview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web FrameworkOverview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web Framework
 
Overview Of Lift Framework
Overview Of Lift FrameworkOverview Of Lift Framework
Overview Of Lift Framework
 

Recently uploaded

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 

Recently uploaded (20)

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 

Yves & Zed @ Developer Conference 2013

  • 1.
  • 3. Who? Fabian Wesner $year >= 2012 CTO @ Project A Ventures $year == 2011 CTO @ Rocket Internet $year == 2010 Lead developer @ Zalando $year <= 2009 Entrepreneur and Freelancer Project A Ventures Building successful companies. Company Builder with focus on Internet, advertising technology and mobile. www.project-a.com
  • 8. Structured code with Bundles and Packages
  • 9. Dependency management with composer - Code is structured in packages - Packages may require each other - We use composer to manage dependencies composer.json of dwh-package {     "name": "project-a/dwh-package",     "autoload": {         "psr-0": { "ProjectA": "/src" }     },     "require": {         "php": ">=5.4.0",         "project-a/auth-package": ">=0.0.10",         "project-a/library-package": ">=0.0.27"     } } How to update Yves & Zed? (1) add a new version to a composer.json (2) run php composer.phar install
  • 12. Zed user interface Kendo UI + Bootstrap + jQuery minified and merged with Grunt
  • 14. Scalable job management with Jenkins /* subscribe users for newsletters */ $jobs[] = array( 'name' => 'send_newsletter_subscription_queue', 'command' => '$PHP_BIN $CLI_PATH/ index.php --module=newsletter --controller=cronjob --action=sendsubscriptionqueue', 'schedule' => '*/2 * * * *', 'enable' => true, 'stores' => $all_stores, ); /* -- MAIL QUEUE -- */ $jobs[] = array( 'name' => 'send_queued_mails', 'command' => '$PHP_BIN $CLI_PATH/ index.php --module=mail -- controller=cronjob --action=send-queued-mails', 'schedule' => '* * * * *', 'enable' => true, 'stores' => $all_stores, ); /* -- DUMP DB -- */ $jobs[] = array( 'name' => 'generate_database_dump', 'command' => '$PHP_BIN $CLI_PATH/ index.php --module=dbdump --controller=cronjob --action=execute', 'schedule' => '0 0 * * *', 'enable' => true, deployment
  • 17. Yves & Zed‘s Big Data infrastructure
  • 19. Visualization of business logic protected function addTransitions() { $this->setup->addTransition( self::STATE_NEW, self::STATE_PREAUTHORIZED, self::EVENT_START_PAYMENT, self::RULE_PAYMENT_TRANSACTION_APPROVED); $this->setup->addTransition( self::STATE_NEW, self::STATE_INVALID, self::EVENT_START_PAYMENT); } protected function addCommands() { $preAuthorizeCommand = $this->factory ->getModelOrderprocessCommandPaymentPreAuthorization(); $this->setup->addCommand( self::STATE_NEW, self::EVENT_START_PAYMENT, $preAuthorizeCommand); } protected function addDefinitions() { $subProcess = $this->factory ->getModelOrderprocessDefinitionSubProcessCancellation() $this->setup->addDefinition($subProcess); } PHP Graph
  • 20. Automatic processing of thousands of orders per day Trigger events Used in several controllers to start the state machine $this->facadeSales->triggerEvent(„start payment“,items); $this->facadeSales->triggerEventBulk($eventName,items); Commands Classes with logic which are triggered from the state machine class SaoZedPaymentComponentCommand PreAuthorization { public function __invoke ($orderEntity, $context) { ... } } Check conditions Decision which way to go class SaoZedPaymentComponentCondition TransactionApproved { /** @return bool */ public function check($orderItem, $context) { ... } } +++ More details: Talk of Oliver Tischlinger tomorrow „Statemachine – Das Mittel gegen Flags!“ +++
  • 22. ETL / job scheduler <job id="load-order-item-status"> <description>Copies the order item status table into the tmp table </description> <commands> <run-sql-file file-name="order-statuses/create-order-item-status-tmp-table.sql" echo-queries="false"/> <load-from-mysql mysql-database="zed" file-name="order-statuses/load-order-item-status.sql" target-table="tmp.order_item_status"/> </commands> </job> <job id="transform-order-item-status"> <description>Copies the order item status table into the dim schema </description> <dependencies> <dependency job="load-order-item-status"/> <dependency job="load-order-item-status-mapping"/> </dependencies> <commands> <run-sql-file file-name="order-statuses/transform-order-item-status.sql" echo-queries="false"/> </commands> </job>
  • 23. Order status mapping Every color has a simple meaning! Not paid Item returned Paid etc. <perspective name="Sales"> <status-group name="Not paid" description="The items are not yet paid" color="#557799"> <status ref="shipped"/> <status ref="waiting for payment"/> <status ref="capture"/> </status-group> <status-group name="Paid" description="The items are paid" color="#559955"> <status ref="paid in money collect"/> <status ref="clarify refund overpayment"/> <status ref="closed"/> </status-group> </perspective> </status-mapping>