Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019

297 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019

  1. 1. #mm19d Flamingo - Inspiring Commerce Frontend Made in Go 1
  2. 2. #mm19d Flamingo - Inspiring Commerce Frontend Made in Go 3
  3. 3. Daniel Pötzinger Bastian Ike
  4. 4. 20 years experience of building and scaling enterprise web applications
  5. 5. 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
  6. 6. Motivation How to build modern e-commerce applications
  7. 7. more personalization & targeted Content = NO frontend caching
  8. 8. Don’t be “Standard”! Differentiate! = increased complexity, more integrations, multiple channels
  9. 9. Headless (Commerce) Solutions e commerce architecture - trend • support omnichannel strategies • Decoupling & Risk reduction • Rapid (frontend) design
  10. 10. Microservices e commerce architecture - trend • Split a complex solution in independent services • Scalability and maintainability
  11. 11. Essential (Base) Complexity Productivity Monolith Microservices What e-commerce architecture to choose?
  12. 12. (cart, campaigns) E-commerce Frontend (Marketplace Shop) Another Shop (Whitelabel) Enterprise Search (external) Loyalty our e-commerce target architecture Order Management Marketplace Payment Product Management cart / campaign Headless CMS Stock … (external) ERP
  13. 13. How would you love to develop commerce applications? Is PHP still the right development language for this? ??
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 4 out of 6 graduated Cloud Native Computing Foundation projects using Go
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. Blazing fast commerce experience
  23. 23. 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
  24. 24. Frontend Backend for Frontend Magento Adapter Adobe Adapters Custom Adapters • Serverside business logic & data provisioning • Session management • Data security and IT security • ACL for Integrations with resilience and caching features • Logging and Tracing Flamingo Commerce Architecture
  25. 25. 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
  26. 26. Clean architecture Domain Driven Design Ports and Adapters
  27. 27. Flamingo commerce Bounded Contexts with its domain models Cart • Multi delivery • Multi payment Product • Product Types • Simple • Configurable Search • SearchService • Documents …
  28. 28. CartProduct Search … • Easy to use and decoupled • Potent models • Technology neutral domain model Flamingo commerce Bounded Contexts with its domain models
  29. 29. Flamingo – Ports and Adapters Technology Free Domain Model Application Use Cases Adapters to the outside / Web Controllers Technical details (e.g. accessing a microservice)
  30. 30. 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
  31. 31. 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
  32. 32. Flamingo commerce CartProduct Search … Standalone Adapters (CSV, In Memory Cart)
  33. 33. Try it out demoshop.flamingo.me
  34. 34. Flamingo commerce – bounded contexts CartProduct Search … Commercetools Adapter Module
  35. 35. Flamingo commerce CartProduct Search … Magento Adapter Module
  36. 36. Flamingo Magento Modules (community project) Product export Cart API Orders API Cart AdapterCSV Loader Product Index (In Memory) Order Adapter OIDC
  37. 37. 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.
  38. 38. 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
  39. 39. Blazing fast commerce experience layer Open sources with from www.flamingo.me @aoepeople