SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
Blazing fast commerce experience layer
Flamingo is a open source, go based, framework
for pluggable web projects.
Useful to build applications with modern UI in your
microservice architecture.
With flamingo-commerce you can build individual 

„commerce experience applications“
Strategic background and motivations
Flamingo Overview & Ecosystem
Flamingo Basic Example
Flamingo Commerce Details
Background and Motivation
Strategic background and motivation for flamingo
How would you love to

develop commerce applications
Is PHP the right development
language for the future
?
?
Strategic background and motivation for flamingo
• Performance:

Highly dynamic fast content rendering

Individual Personalization and Context aware rendering

• Flexibility in a Microservice architecture:

Flexible to use in microservice oriented individual architectures.

Useable with „headless“ (commerce) services

No Build and deploy overhead

• Frontend development performance: 

Decouple frontend build pipeline from „backend“ logic

• Developer Experience: 

Effective and Fun to use!

Fast team ramp up and low learning curve

• Clean architecture
How would you love to

develop commerce applications
Strategic background and motivation for flamingo
Is PHP the right development language 

for the future??
Strategic background and motivation for flamingo
Is PHP the right development language 

for the future?
• Overhead:

Interpreter and Webserver need to run

• Always from 0 to 100: 

No running application

Each request need to bootstrap and prepare and after rendering „dies“

Managing state between requests requires extra effort

• Performance:

No concurrency features

Compared to other languages often inefficient 

• Missing language features: 

Not typesafe (without extra effort) - 

=> more bugs / harder refactorings

• Learning

ca 11.000 functions/commands in PHP7!
Strategic background and motivation for flamingo
„go“ - an alternative to PHP
Go is an open source programming language
that makes it easy to build simple, reliable, and
efficient software.
https://golang.org/
Strategic background and motivation for flamingo
• 2012 Go 1.0

• Developed by Google

• Easy to learn: Goal was to be able to scale with in big dev
teams
„go“ - an alternative to PHP
Strategic background and motivation for flamingo
Why PHP is not the right language for modern enterprise
web applications!
Web Request:   One process per request  Running application
    + Webserver + Interpreter  (Webserver included)
Concurrency:  not really  yes
Amount of Code:  100%  30%

Performance:  -  ++++ 
Interest:  decreasing  jumping up  
  



Productivity:  +  ++
 
Strategic background and motivation for flamingo
What should be the stack to develop future commerce
applications
• PHP based

• Monolitic
approach

• Not build for
microservice style
distributed
architecture

• high learning curve

• hard to find good,
experienced and
motivated
developers

• Opinionated
templating
Magento? oroCommerce? Spryker?
• A lot of features

• Proofen in many
production setups

• existing ecosystem

• …
Prestashop? Shopware?
Magento Lizard and Pumpkin Vue Storefront
Strategic background and motivation for flamingo
The birth of the bird
Using our collected experience and
start a new framework for building
modern and blazing fast 



„commerce experience
applications“
What we need seems not to exist
Strategic background and motivation for flamingo
The birth of the bird
2016 - Flamingo was born caused by the 

lack of alternatives
2017/18 - E-Commerce Frontend for
2018 - Used in many more production project
2018 - Several clean ups
- Focus on open sourcing
- Trainings and Examples
Flamingo
Overview &
Ecosystem
Status of flamingo
• Build for Microservice environments:
• Architecture makes it easy to connect to different „backend“ services

• Ideal as „Head“ for headless commerce services

• Resilience and Test Pattern „build in“

• Not build to be the next Feature complete Ecommerce Monolith

• Lightweight and easy to learn
• Decoupled and powerful Frontend Tools and Pipeline
• Scalability and Performance
• Dynamic page rendering time <20ms

• Asyncronous rendering

• Easy horizontal scaling

• Clean Architecture:
• Usage of Domain Driven Design to craft elegant software systems

• USage of Ports and Adapters for clean layering and seperation

Design Goals
Status of flamingo
Flamingo
Flamingo Carotene
Flamingo Commerce
flamingo-commerce-adapter-
standalone
Commerce Demo
Example-*
Flamingo is a go based, framework for pluggable web
projects. Core and Framework modules
Is the frontend build pipeline featuring pug and atomic
design pattern.
Example and Demo projects with Trainings - to get started.
flamingo modules that provide „domain“, „application“
and „interface“ logic around commerce features.

These modules can be used with your own „Adapters“ to
interact with any API or microservice you want.
Adapters for the flamingo commerce modules that can be
used standalone

Demo Shop for flamingo-commerce - using the standalone
adapters
Status of flamingo
Module Overview
Core/Packages (basics)
form locale redirects gotemplate
healthcheck internalauth cache zap
Framework/Packages
config
router template
(interface)
web
event session
dingo
controller
pugtemplate
…
opencensus
testutil
Status of flamingo
Flamingo Carotene
PUG
SASS
Atomic design
Status of flamingo
Status of flamingo
Structure of a typical flamingo project
Your custom modules
Flamingo
Flamingo: Core and Framework.
(Dependency Injection; Configuration;
Security; Logging; Routing; Resilience
Pattern; …)
Your logic and features 

(e.g. Backend for Frontend Pattern)
Flamingo Carotene helper and build pipeline
modern frontend templating
based on pugProject Templates
Flamingo
Example
Example
Example: Edit Frontend Templates in „Watch“ mode.
After saving the page is updated automatically
Example
Flamingo
Commerce
Flamingo
Commerce
Details
Flamingo Commerce Packages
cart product checkout customer
Flamingo-Commerce
search w3cDataLayer category …
Main Ecommerce Package 

Dependencies
cartproduct checkout customersearch category auth
Infrastructure
Interfaces
Application
Domain Model /
Core Logic
Ports and Adapters - Clean Architecture
Ports and Adapters - Clean Architecture
Domain
Application
Interfaces
Infrastructure
Infrastructure
Product Module Some Product Adapter Module
Defines Product Model etc

And the secondary Port:
Product Detail View
a „FakeProductService“
Flamingo
Commerce
Architectures
Flamingo Architecture Examples:
„Magento 2 + Flamingo“
flamingo e-commerce project on top of Magento2
Magento 2

(With custom extensions)
Product Adapter

Search Adapter

Category Adapter
Cart Adapter

CMS

Order Adapter

Customer Adapter
Flamingo can for example be used as „Head“ for a „Headless“ Magento 2
Setup.



In this case we still recommend to provide product data from a realtime search
(e.g. implemented with elasticsearch)
flamingo-commerce-adapter-magento
Flamingo Architecture Examples:
„Magento 2 + Flamingo“
flamingo e-commerce project on top of Magento2 and Elasticsearch
Magento 2

(With custom extensions)
Cart Adapter

CMS

Order Adapter

Customer Adapter
Flamingo can for example be used as „Head“ for a „Headless“ Magento 2
Setup.



In this case we still recommend to provide product data from a realtime search
(e.g. implemented with elasticsearch)
flamingo-commerce-adapter-magento
product search service

(e.g. with Elastic
Search)
On the fly
product import
Product Adapter

Search Adapter

Category Adapter
elasticsearch adapter
Flamingo Architecture Examples:
„Commerce Microservices + Flamingo“
Some Flamingo Commerce Project
product
search
service
Cart
Service
SSO
(Keycloak)
OpenId Flow
Stock
Service
CMS
Order
Management Fullfillment
Payment 

PSP
PIM
User
Service
/ CRM
Flamingo My
Account
Project
some project specific modulessome project specific modules
adapter
Flamingo Architecture Example:
„Standalone Flamingo“
Some Flamingo Commerce Project
SSO
(Keycloak)
flamingo-commerce-adapter-standalone
„Flamingo-commerce-adapters-standalone“:
Adapters for most Flamingo Commerce Ports.
They might be a good start for your own project.
flamingo-commerce-adapter-standalone
Ecommerce Adapters
(Demo / Standalone Bundle)
cartproduct checkout customersearch category
csvProductCatalog inMemoryCart
auth
PlaceOrder= MailPersistence= CSVs
rules
Demo for cart and product rules
Demo for checkout sourcing engine etc
Ecommerce Adapters
(Demo / Standalone Bundle)
What can I
see already?
Status of flamingo
www.flamingo.me docs.flamingo.me

Contenu connexe

Tendances

Kafka replication apachecon_2013
Kafka replication apachecon_2013Kafka replication apachecon_2013
Kafka replication apachecon_2013
Jun Rao
 
Using LLVM to accelerate processing of data in Apache Arrow
Using LLVM to accelerate processing of data in Apache ArrowUsing LLVM to accelerate processing of data in Apache Arrow
Using LLVM to accelerate processing of data in Apache Arrow
DataWorks Summit
 

Tendances (20)

Split my monolith - Devoxx
Split my monolith - DevoxxSplit my monolith - Devoxx
Split my monolith - Devoxx
 
IBM Cloud Pak for Integration 2020.2.1 installation
IBM Cloud Pak for Integration 2020.2.1 installation IBM Cloud Pak for Integration 2020.2.1 installation
IBM Cloud Pak for Integration 2020.2.1 installation
 
Distributed Transaction in Microservice
Distributed Transaction in MicroserviceDistributed Transaction in Microservice
Distributed Transaction in Microservice
 
How to Send IDOC to SAP using MuleSoft
How to Send IDOC to SAP using MuleSoftHow to Send IDOC to SAP using MuleSoft
How to Send IDOC to SAP using MuleSoft
 
Naked Performance With Clojure
Naked Performance With ClojureNaked Performance With Clojure
Naked Performance With Clojure
 
Kafka replication apachecon_2013
Kafka replication apachecon_2013Kafka replication apachecon_2013
Kafka replication apachecon_2013
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration Patterns
 
Provisioning Infrastructure Using Terraform
Provisioning Infrastructure Using TerraformProvisioning Infrastructure Using Terraform
Provisioning Infrastructure Using Terraform
 
Aggregating API Services with an API Gateway (BFF)
Aggregating API Services with an API Gateway (BFF)Aggregating API Services with an API Gateway (BFF)
Aggregating API Services with an API Gateway (BFF)
 
API Lifecycle, Part 2: Monitor and Deploy an API
API Lifecycle, Part 2: Monitor and Deploy an APIAPI Lifecycle, Part 2: Monitor and Deploy an API
API Lifecycle, Part 2: Monitor and Deploy an API
 
Enterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache CamelEnterprise Integration Patterns with Apache Camel
Enterprise Integration Patterns with Apache Camel
 
Log management with ELK
Log management with ELKLog management with ELK
Log management with ELK
 
Prometheus Training
Prometheus TrainingPrometheus Training
Prometheus Training
 
Kinh nghiệm triển khai Microservices tại Sapo.vn
Kinh nghiệm triển khai Microservices tại Sapo.vnKinh nghiệm triển khai Microservices tại Sapo.vn
Kinh nghiệm triển khai Microservices tại Sapo.vn
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated
 
API Management Within a Microservices Architecture
API Management Within a Microservices Architecture API Management Within a Microservices Architecture
API Management Within a Microservices Architecture
 
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...
 
Using LLVM to accelerate processing of data in Apache Arrow
Using LLVM to accelerate processing of data in Apache ArrowUsing LLVM to accelerate processing of data in Apache Arrow
Using LLVM to accelerate processing of data in Apache Arrow
 
Domain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with RailsDomain Driven Design and Hexagonal Architecture with Rails
Domain Driven Design and Hexagonal Architecture with Rails
 

Similaire à Flamingo Microservice based E-Commerce / Motivations,Backgrounds, Short Introduction

Flex In Dot Net
Flex In Dot NetFlex In Dot Net
Flex In Dot Net
pradeepfdo
 

Similaire à Flamingo Microservice based E-Commerce / Motivations,Backgrounds, Short Introduction (20)

Flamingo presentation at code.talks commerce by Daniel Pötzinger
Flamingo presentation at code.talks commerce by Daniel PötzingerFlamingo presentation at code.talks commerce by Daniel Pötzinger
Flamingo presentation at code.talks commerce by Daniel Pötzinger
 
Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019
Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019
Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019
 
How to build and deploy app on Replit
How to build and deploy app on ReplitHow to build and deploy app on Replit
How to build and deploy app on Replit
 
A Step-by-Step Guide to Building and Deploying Python Applications with Repli...
A Step-by-Step Guide to Building and Deploying Python Applications with Repli...A Step-by-Step Guide to Building and Deploying Python Applications with Repli...
A Step-by-Step Guide to Building and Deploying Python Applications with Repli...
 
Which Tools Are The Best For Symfony Projects_.pdf
Which Tools Are The Best For Symfony Projects_.pdfWhich Tools Are The Best For Symfony Projects_.pdf
Which Tools Are The Best For Symfony Projects_.pdf
 
The Spirit of Opensource - contribution as a strategy for growth and innova...
The Spirit of Opensource   - contribution as a strategy for growth and innova...The Spirit of Opensource   - contribution as a strategy for growth and innova...
The Spirit of Opensource - contribution as a strategy for growth and innova...
 
Composite C1 Presentaion
Composite C1  PresentaionComposite C1  Presentaion
Composite C1 Presentaion
 
Introducing symfony
Introducing symfonyIntroducing symfony
Introducing symfony
 
WebSphere Portal Business Overview
WebSphere Portal Business OverviewWebSphere Portal Business Overview
WebSphere Portal Business Overview
 
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
 
Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.Documentation of Online jobs for BCA last sem on PHP.
Documentation of Online jobs for BCA last sem on PHP.
 
DACHNUG50 - Unified Development Plattform - Volt MX.pdf
DACHNUG50  - Unified Development Plattform - Volt MX.pdfDACHNUG50  - Unified Development Plattform - Volt MX.pdf
DACHNUG50 - Unified Development Plattform - Volt MX.pdf
 
Digitizing and automating HR workflows with DronaHQ
Digitizing and automating HR workflows with DronaHQ Digitizing and automating HR workflows with DronaHQ
Digitizing and automating HR workflows with DronaHQ
 
Which Tools Are The Best For Symfony Projects_.pdf
Which Tools Are The Best For Symfony Projects_.pdfWhich Tools Are The Best For Symfony Projects_.pdf
Which Tools Are The Best For Symfony Projects_.pdf
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
 
Best PHP Frameworks For Web Development
Best PHP Frameworks For Web Development Best PHP Frameworks For Web Development
Best PHP Frameworks For Web Development
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
 
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the KeyIIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
IIBA® Sydney Unlocking the Power of Low Code No Code: Why BAs Hold the Key
 
Flex In Dot Net
Flex In Dot NetFlex In Dot Net
Flex In Dot Net
 

Plus de i-love-flamingo (7)

Flamingo in Production
Flamingo in ProductionFlamingo in Production
Flamingo in Production
 
Flamingo Core Concepts
Flamingo Core ConceptsFlamingo Core Concepts
Flamingo Core Concepts
 
Flamingo Training - Hello World
Flamingo Training - Hello WorldFlamingo Training - Hello World
Flamingo Training - Hello World
 
Flamingo Carotene
Flamingo CaroteneFlamingo Carotene
Flamingo Carotene
 
Flamingo Commerce Module Details
Flamingo Commerce Module DetailsFlamingo Commerce Module Details
Flamingo Commerce Module Details
 
Flamingo Commerce Ports and Adapters
Flamingo Commerce Ports and AdaptersFlamingo Commerce Ports and Adapters
Flamingo Commerce Ports and Adapters
 
Flamingo Hello World Tutorial
Flamingo Hello World TutorialFlamingo Hello World Tutorial
Flamingo Hello World Tutorial
 

Dernier

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Dernier (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 

Flamingo Microservice based E-Commerce / Motivations,Backgrounds, Short Introduction

  • 1. Blazing fast commerce experience layer
  • 2. Flamingo is a open source, go based, framework for pluggable web projects. Useful to build applications with modern UI in your microservice architecture. With flamingo-commerce you can build individual 
 „commerce experience applications“
  • 3. Strategic background and motivations Flamingo Overview & Ecosystem Flamingo Basic Example Flamingo Commerce Details
  • 5. Strategic background and motivation for flamingo How would you love to
 develop commerce applications Is PHP the right development language for the future ? ?
  • 6. Strategic background and motivation for flamingo • Performance:
 Highly dynamic fast content rendering
 Individual Personalization and Context aware rendering • Flexibility in a Microservice architecture:
 Flexible to use in microservice oriented individual architectures.
 Useable with „headless“ (commerce) services
 No Build and deploy overhead • Frontend development performance: 
 Decouple frontend build pipeline from „backend“ logic • Developer Experience: 
 Effective and Fun to use!
 Fast team ramp up and low learning curve • Clean architecture How would you love to
 develop commerce applications
  • 7. Strategic background and motivation for flamingo Is PHP the right development language 
 for the future??
  • 8. Strategic background and motivation for flamingo Is PHP the right development language 
 for the future? • Overhead:
 Interpreter and Webserver need to run • Always from 0 to 100: 
 No running application
 Each request need to bootstrap and prepare and after rendering „dies“
 Managing state between requests requires extra effort • Performance:
 No concurrency features
 Compared to other languages often inefficient • Missing language features: 
 Not typesafe (without extra effort) - 
 => more bugs / harder refactorings • Learning
 ca 11.000 functions/commands in PHP7!
  • 9. Strategic background and motivation for flamingo „go“ - an alternative to PHP Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. https://golang.org/
  • 10. Strategic background and motivation for flamingo • 2012 Go 1.0 • Developed by Google • Easy to learn: Goal was to be able to scale with in big dev teams „go“ - an alternative to PHP
  • 11. Strategic background and motivation for flamingo Why PHP is not the right language for modern enterprise web applications! Web Request:   One process per request  Running application     + Webserver + Interpreter  (Webserver included) Concurrency:  not really  yes Amount of Code:  100%  30%
 Performance:  -  ++++  Interest:  decreasing  jumping up     
 
 Productivity:  +  ++  
  • 12. Strategic background and motivation for flamingo What should be the stack to develop future commerce applications • PHP based • Monolitic approach • Not build for microservice style distributed architecture • high learning curve • hard to find good, experienced and motivated developers • Opinionated templating Magento? oroCommerce? Spryker? • A lot of features • Proofen in many production setups • existing ecosystem • … Prestashop? Shopware? Magento Lizard and Pumpkin Vue Storefront
  • 13. Strategic background and motivation for flamingo The birth of the bird Using our collected experience and start a new framework for building modern and blazing fast 
 
 „commerce experience applications“ What we need seems not to exist
  • 14. Strategic background and motivation for flamingo The birth of the bird 2016 - Flamingo was born caused by the 
 lack of alternatives 2017/18 - E-Commerce Frontend for 2018 - Used in many more production project 2018 - Several clean ups - Focus on open sourcing - Trainings and Examples
  • 16. Status of flamingo • Build for Microservice environments: • Architecture makes it easy to connect to different „backend“ services • Ideal as „Head“ for headless commerce services • Resilience and Test Pattern „build in“ • Not build to be the next Feature complete Ecommerce Monolith
 • Lightweight and easy to learn • Decoupled and powerful Frontend Tools and Pipeline • Scalability and Performance • Dynamic page rendering time <20ms • Asyncronous rendering • Easy horizontal scaling
 • Clean Architecture: • Usage of Domain Driven Design to craft elegant software systems • USage of Ports and Adapters for clean layering and seperation Design Goals
  • 17. Status of flamingo Flamingo Flamingo Carotene Flamingo Commerce flamingo-commerce-adapter- standalone Commerce Demo Example-* Flamingo is a go based, framework for pluggable web projects. Core and Framework modules Is the frontend build pipeline featuring pug and atomic design pattern. Example and Demo projects with Trainings - to get started. flamingo modules that provide „domain“, „application“ and „interface“ logic around commerce features.
 These modules can be used with your own „Adapters“ to interact with any API or microservice you want. Adapters for the flamingo commerce modules that can be used standalone Demo Shop for flamingo-commerce - using the standalone adapters
  • 18. Status of flamingo Module Overview Core/Packages (basics) form locale redirects gotemplate healthcheck internalauth cache zap Framework/Packages config router template (interface) web event session dingo controller pugtemplate … opencensus testutil
  • 19. Status of flamingo Flamingo Carotene PUG SASS
  • 21. Status of flamingo Structure of a typical flamingo project Your custom modules Flamingo Flamingo: Core and Framework. (Dependency Injection; Configuration; Security; Logging; Routing; Resilience Pattern; …) Your logic and features 
 (e.g. Backend for Frontend Pattern) Flamingo Carotene helper and build pipeline modern frontend templating based on pugProject Templates
  • 24. Example: Edit Frontend Templates in „Watch“ mode. After saving the page is updated automatically Example
  • 26.
  • 27.
  • 29. Flamingo Commerce Packages cart product checkout customer Flamingo-Commerce search w3cDataLayer category …
  • 30. Main Ecommerce Package 
 Dependencies cartproduct checkout customersearch category auth
  • 31. Infrastructure Interfaces Application Domain Model / Core Logic Ports and Adapters - Clean Architecture
  • 32. Ports and Adapters - Clean Architecture Domain Application Interfaces Infrastructure Infrastructure Product Module Some Product Adapter Module Defines Product Model etc And the secondary Port: Product Detail View a „FakeProductService“
  • 34. Flamingo Architecture Examples: „Magento 2 + Flamingo“ flamingo e-commerce project on top of Magento2 Magento 2
 (With custom extensions) Product Adapter Search Adapter Category Adapter Cart Adapter CMS Order Adapter Customer Adapter Flamingo can for example be used as „Head“ for a „Headless“ Magento 2 Setup. 
 In this case we still recommend to provide product data from a realtime search (e.g. implemented with elasticsearch) flamingo-commerce-adapter-magento
  • 35. Flamingo Architecture Examples: „Magento 2 + Flamingo“ flamingo e-commerce project on top of Magento2 and Elasticsearch Magento 2
 (With custom extensions) Cart Adapter CMS Order Adapter Customer Adapter Flamingo can for example be used as „Head“ for a „Headless“ Magento 2 Setup. 
 In this case we still recommend to provide product data from a realtime search (e.g. implemented with elasticsearch) flamingo-commerce-adapter-magento product search service
 (e.g. with Elastic Search) On the fly product import Product Adapter Search Adapter Category Adapter elasticsearch adapter
  • 36. Flamingo Architecture Examples: „Commerce Microservices + Flamingo“ Some Flamingo Commerce Project product search service Cart Service SSO (Keycloak) OpenId Flow Stock Service CMS Order Management Fullfillment Payment 
 PSP PIM User Service / CRM Flamingo My Account Project some project specific modulessome project specific modules adapter
  • 37. Flamingo Architecture Example: „Standalone Flamingo“ Some Flamingo Commerce Project SSO (Keycloak) flamingo-commerce-adapter-standalone „Flamingo-commerce-adapters-standalone“: Adapters for most Flamingo Commerce Ports. They might be a good start for your own project.
  • 38. flamingo-commerce-adapter-standalone Ecommerce Adapters (Demo / Standalone Bundle) cartproduct checkout customersearch category csvProductCatalog inMemoryCart auth PlaceOrder= MailPersistence= CSVs rules Demo for cart and product rules Demo for checkout sourcing engine etc
  • 39. Ecommerce Adapters (Demo / Standalone Bundle)
  • 40. What can I see already?