Flamingo presentation slides from Daniel Pötzinger and Bastian Ike at Meet Magento 2019 in Leipzig, presenting the new, blazingly fast open source framework Flamingo. More info on www.flamingo.me
6. Content of this talk
1. The problem that Flamingo solves
2. Go – the better programming language
4. Flamingo Commerce – what is it
5. Flamingo Commerce – and Magento
3. What is Flamingo
14. How would you love to develop
commerce applications?
Is PHP still the right development
language for this?
??
15. How would you love to develop commerce applications?
• Performance:
Highly dynamic fast content rendering Individual Personalization and Context aware
rendering
• Clean architecture
• 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 flexibility:
Decouple frontend build pipeline from „backend“ logic
• Testability
• Developer Experience:
Effective and Fun to use * low learning curve
• Open Source
16. Is PHP still the right development language for this?
• Fast Development cycles
• Easy onboarding
• Happy developers
• Focus on writing code. Not tooling.
• Small memory+cpu footprint
17. Is PHP the right development language for this?
• Webserver included
• Compiled / Type Safe
• Concurrency
• Easy to learn - build to scale
• Supported by Google
• Increasing Interest and Success
18. Introducing Go
• Founded 2009 at Google
• Motivated by the need to create a language
which is easy to learn, operate and scale
• Rapid grow in the last 3 years
19. 4 out of 6 graduated Cloud Native Computing Foundation
projects using Go
20. The Go Programming Language
• Type safe
• No type confusion
• No inheritance
• Composition over inheritance
• Implicit interfaces
• If it quacks, it’s can be duck
• No complex exception handling
• You have to deal with your errors
• Easy concurrency
• Go routines and channels
21. The Go Toolchain
• Build-in Dependency management
• “go modules”
• Minimal Version Selection
• Static and cross-platform compilation
• Linux, Windows, Mac, FreeBSd
• x86, arm, ppc, mips
• No additional tooling needed
22. Getting started with Go
• Do the interactive tour at
https://tour.golang.org
• Take a look into the standard lib at
https://golang.org/pkg/
• Enjoy development with Flamingo J
24. Carotene
Flamingo is a
lightweight open
source web application
framework written in
Go.
Flamingo Commerce:
Flexible set of
commerce features –
following clean
architecture.
Npm modules that
provide frontend build
pipeline – featuring
pug, sass, webpack
and atomic design
patternUse Flamingo Core to
build sophisticated web
applications with
tailored frontends.
Use Flamingo
Commerce to build
indiviual e-commerce
applications or your
head for headless
e-commerce
Open sources with from
30. Next.Js / Browser
Backend for Frontend
React.js
Components
Relay or
Apollo
Flamingo Frontend Options
SPA, MPA or PWA - Decide for the best option for your project.
Carotene
Restful API GraphQLWeb
Interfaces
Individual MPAServer side rendering OR
32. Flamingo commerce
Bounded Contexts with its domain models
Cart
• Multi delivery
• Multi payment
Product
• Product Types
• Simple
• Configurable
Search
• SearchService
• Documents
…
33. CartProduct Search
…
• Easy to use and decoupled
• Potent models
• Technology neutral domain model
Flamingo commerce
Bounded Contexts with its domain models
34. Flamingo – Ports and Adapters
Technology Free Domain Model
Application Use Cases
Adapters to the outside / Web Controllers
Technical details (e.g. accessing a microservice)
35. Domain of “Product”
Context
Interface Layer
Flamingo – Ports and Adapters
<<interface>>
ProductService
.Get (id)
Used as primary port:
• The product service is called from the
interface layer for example
(in a ProductViewController)
ProductController
.ViewAction
Product
Product Module
36. Adapter Module Product Module
Domain of “Product”
Context
Interface Layer
Flamingo – Ports and Adapters
<<interface>>
ProductService
.Get (id)
ProductController
.ViewAction
Infrastructure
Layer
ProductServiceAdapter
Get (id) {…}
Used as secondary port:
• The product service is
implemented
by a secondary adapter
Product
41. Flamingo Magento Modules
(community project)
Product export Cart API Orders API
Cart AdapterCSV Loader
Product Index
(In Memory)
Order Adapter
OIDC
42. Summary – when to consider
When developer experience is
important
When you need to build maintainable
and scalable e-commerce solutions
When you want to use the benefits of
the language Go.
43. Register for the first training
(40 seats)
https://bit.ly/2UhQKfG
Di., 27.08.2019, 09:00 Uhr –
Mi., 28.08.2019, 17:00 Uhr MESZ
Wiesbaden, AOE Headquarter
44. Blazing fast commerce experience layer
Open sources with from
www.flamingo.me
@aoepeople