SlideShare a Scribd company logo
Hexagonal architecture
in practice
About me
Backend Tech Lead at
Lecturer at Kottans
Andriy Andriyko
What we will talk about
1. What is good architecture?
2. What is hexagonal architecture?
3. Run it! Examples and demo
4. How to test hexagon?
5. Do you really need it?
6. Summary
How do you see an
architecture?
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
What do we want from architecture?
● High Maintainability
● Low Technical Debt
Maintainability
You can become italian chef
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
Hexagonal architecture
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
19 10
Слайд про ноду на гексагоне
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
Perfect fit for Nodejs
Demo
Application core
Primary adapters
Secondary adapters. Notifications
Port
Adapter
Secondary adapters. Repository port
Secondary adapters. Repository Adapter
Project structure
/core
/primaryAdapters
/secondaryAdapters
Project structure. Primary adapters
Project structure. Secondary adapters
Project structure. Core
/core
/component
/port
/sharedKernel
Демка. Запустить
показать
JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті
Tests
● Unit
● Integration
● Acceptance
Tests. Unit
Tests. Integration
Tests. Acceptance
Not a silver bullet
When you need Hexagon?
● App have business logic
● App will evolve
● Team is big and project is long-term
● Need to change technologies
When you don’t need Hexagon?
● Small projects
● Speed more important than maintainability
● There is a better fit for your problem
Combine approaches
● Service-oriented architecture
● Microservices
● Serverless
Problems
● Transactions
● Validations
● DB queries optimisation
Conclusions
Pros Cons
Great testability Complexity
Maintainability Easy to over-engineer
Easy handle changes
Delay technical decisions
Questions?
Contacts
andriy.andriyko@uptech.team
andriy-andriyko
Stormteller

More Related Content

PDF
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
William Yeh
 
PPTX
Development-Testing Methodologies
Christopher J. Scharer
 
PDF
How do we start taipei video technology
Shuen-Huei Guan
 
PPTX
Turpentine OSS
Miguel Ignacio Balparda
 
PDF
Inland Empire JUG Presentation 12/11
Michael Kennedy
 
PDF
Using Travis CI to Test and Deploy Plugins
Joe Cartonia
 
PPTX
BDD on Java Concordion and Selenium
springbyexample
 
PDF
Developer in Test (SDET) - Job in London
Mark Long
 
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
William Yeh
 
Development-Testing Methodologies
Christopher J. Scharer
 
How do we start taipei video technology
Shuen-Huei Guan
 
Turpentine OSS
Miguel Ignacio Balparda
 
Inland Empire JUG Presentation 12/11
Michael Kennedy
 
Using Travis CI to Test and Deploy Plugins
Joe Cartonia
 
BDD on Java Concordion and Selenium
springbyexample
 
Developer in Test (SDET) - Job in London
Mark Long
 

What's hot (6)

PPTX
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
AgileSparks
 
PDF
The Evolving Role of Build Engineering in Managing Open Source
DevOps.com
 
PDF
java SE tutorial first session
Omid Haghighatgoo
 
PDF
JHipster conf : craftsmanship & tdd
Hippolyte Durix
 
PDF
Foundations for the perfect technology stream
Bernd Alter
 
PDF
Complex Made Simple: The State of Governance in Open Source
Shane Coughlan
 
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
AgileSparks
 
The Evolving Role of Build Engineering in Managing Open Source
DevOps.com
 
java SE tutorial first session
Omid Haghighatgoo
 
JHipster conf : craftsmanship & tdd
Hippolyte Durix
 
Foundations for the perfect technology stream
Bernd Alter
 
Complex Made Simple: The State of Governance in Open Source
Shane Coughlan
 
Ad

Similar to JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті (20)

PDF
Hexagonal architecture
Nicolas Guignard
 
PPTX
Develop, deploy, and operate services at reddit scale oscon 2018
Gregory Taylor
 
PDF
Bridging the gap: Successful collaboration between engineering & design
UXDXConf
 
PDF
The working architecture of NodeJS applications, Виктор Турский
Sigma Software
 
PDF
The working architecture of node js applications open tech week javascript ...
Viktor Turskyi
 
PPTX
Telerik Kendo UI vs. AngularJS
Rainer Stropek
 
PDF
Building Enterprise IoT Projects Iteratively - Vui Nguyen
WithTheBest
 
PDF
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Nir Yungster
 
PPTX
Bridging the gap
UXDXConf
 
PDF
Evolving to Cloud-Native - Anand Rao
VMware Tanzu
 
PDF
Pareto will tell you to stop using your ORM - Mateo Collina
Wey Wey Web
 
PDF
Introduction to kore kubernetes for teams
Appvia
 
PPTX
Indy meetup#7 effective unit-testing-mule
ikram_ahamed
 
PDF
Intro to OpenShift, MongoDB Atlas & Live Demo
MongoDB
 
PDF
Moving from Monolith to Microservices
Mist.io
 
PPTX
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Demi Ben-Ari
 
PDF
What is the best approach to tdd
Red Hat
 
PDF
Hexagonal Architecture.pdf
VladimirRadzivil
 
PPTX
Evolving your api architecture with the strangler pattern
dwcarter74
 
PDF
Dust.js
Yevgeniy Brikman
 
Hexagonal architecture
Nicolas Guignard
 
Develop, deploy, and operate services at reddit scale oscon 2018
Gregory Taylor
 
Bridging the gap: Successful collaboration between engineering & design
UXDXConf
 
The working architecture of NodeJS applications, Виктор Турский
Sigma Software
 
The working architecture of node js applications open tech week javascript ...
Viktor Turskyi
 
Telerik Kendo UI vs. AngularJS
Rainer Stropek
 
Building Enterprise IoT Projects Iteratively - Vui Nguyen
WithTheBest
 
Data Science in Production: Technologies That Drive Adoption of Data Science ...
Nir Yungster
 
Bridging the gap
UXDXConf
 
Evolving to Cloud-Native - Anand Rao
VMware Tanzu
 
Pareto will tell you to stop using your ORM - Mateo Collina
Wey Wey Web
 
Introduction to kore kubernetes for teams
Appvia
 
Indy meetup#7 effective unit-testing-mule
ikram_ahamed
 
Intro to OpenShift, MongoDB Atlas & Live Demo
MongoDB
 
Moving from Monolith to Microservices
Mist.io
 
Kubernetes, Toolbox to fail or succeed for beginners - Demi Ben-Ari, VP R&D @...
Demi Ben-Ari
 
What is the best approach to tdd
Red Hat
 
Hexagonal Architecture.pdf
VladimirRadzivil
 
Evolving your api architecture with the strangler pattern
dwcarter74
 
Ad

More from JSFestUA (20)

PDF
JS Fest 2019/Autumn. Роман Савіцький. Webcomponents & lit-element in production
JSFestUA
 
PDF
JS Fest 2019/Autumn. Erick Wendel. 10 secrets to improve Javascript Performance
JSFestUA
 
PDF
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
JSFestUA
 
PDF
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JSFestUA
 
PDF
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JSFestUA
 
PDF
JS Fest 2019/Autumn. Marko Letic. Saving the world with JavaScript: A Data Vi...
JSFestUA
 
PPTX
JS Fest 2019/Autumn. Александр Товмач. JAMstack
JSFestUA
 
PPTX
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JSFestUA
 
PPTX
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
JSFestUA
 
PPTX
JS Fest 2019/Autumn. Maciej Treder. Angular Schematics - Develop for developers
JSFestUA
 
PPTX
JS Fest 2019/Autumn. Kyle Boss. A Tinder Love Story: Create a Wordpress Blog ...
JSFestUA
 
PPTX
JS Fest 2019/Autumn. Андрей Старовойт. Зачем нужен тип "true" в TypeScript?
JSFestUA
 
PPTX
JS Fest 2019/Autumn. Eyal Eizenberg. Tipping the Scale
JSFestUA
 
PDF
JS Fest 2019/Autumn. Sota Ohara. Сreate own server less CMS from scratch
JSFestUA
 
PPTX
JS Fest 2019/Autumn. Джордж Евтушенко. Как стать программистом, которого хотят
JSFestUA
 
PDF
JS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for Rust
JSFestUA
 
PDF
JS Fest 2019/Autumn. Daniel Ostrovsky. Falling in love with decorators ES6/Ty...
JSFestUA
 
PPTX
JS Fest 2019/Autumn. Борис Могила. Svelte. Почему нам не нужно run-time ядро
JSFestUA
 
PPTX
JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...
JSFestUA
 
PDF
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
JSFestUA
 
JS Fest 2019/Autumn. Роман Савіцький. Webcomponents & lit-element in production
JSFestUA
 
JS Fest 2019/Autumn. Erick Wendel. 10 secrets to improve Javascript Performance
JSFestUA
 
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"
JSFestUA
 
JS Fest 2019/Autumn. Anton Cherednikov. Choreographic or orchestral architect...
JSFestUA
 
JS Fest 2019/Autumn. Adam Leos. So why do you need to know Algorithms and Dat...
JSFestUA
 
JS Fest 2019/Autumn. Marko Letic. Saving the world with JavaScript: A Data Vi...
JSFestUA
 
JS Fest 2019/Autumn. Александр Товмач. JAMstack
JSFestUA
 
JS Fest 2019/Autumn. Влад Федосов. Technology agnostic microservices at SPA f...
JSFestUA
 
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
JSFestUA
 
JS Fest 2019/Autumn. Maciej Treder. Angular Schematics - Develop for developers
JSFestUA
 
JS Fest 2019/Autumn. Kyle Boss. A Tinder Love Story: Create a Wordpress Blog ...
JSFestUA
 
JS Fest 2019/Autumn. Андрей Старовойт. Зачем нужен тип "true" в TypeScript?
JSFestUA
 
JS Fest 2019/Autumn. Eyal Eizenberg. Tipping the Scale
JSFestUA
 
JS Fest 2019/Autumn. Sota Ohara. Сreate own server less CMS from scratch
JSFestUA
 
JS Fest 2019/Autumn. Джордж Евтушенко. Как стать программистом, которого хотят
JSFestUA
 
JS Fest 2019/Autumn. Алексей Орленко. Node.js N-API for Rust
JSFestUA
 
JS Fest 2019/Autumn. Daniel Ostrovsky. Falling in love with decorators ES6/Ty...
JSFestUA
 
JS Fest 2019/Autumn. Борис Могила. Svelte. Почему нам не нужно run-time ядро
JSFestUA
 
JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...
JSFestUA
 
JS Fest 2019. Виктор Турский. 6 способов взломать твое JavaScript приложение
JSFestUA
 

Recently uploaded (20)

PPTX
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
Priyanshu Anand
 
PDF
UTS Health Student Promotional Representative_Position Description.pdf
Faculty of Health, University of Technology Sydney
 
PDF
Review of Related Literature & Studies.pdf
Thelma Villaflores
 
PPTX
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 
PDF
Health-The-Ultimate-Treasure (1).pdf/8th class science curiosity /samyans edu...
Sandeep Swamy
 
PPTX
Introduction to pediatric nursing in 5th Sem..pptx
AneetaSharma15
 
PDF
PG-BPSDMP 2 TAHUN 2025PG-BPSDMP 2 TAHUN 2025.pdf
AshifaRamadhani
 
PPT
Python Programming Unit II Control Statements.ppt
CUO VEERANAN VEERANAN
 
DOCX
Action Plan_ARAL PROGRAM_ STAND ALONE SHS.docx
Levenmartlacuna1
 
PPTX
PREVENTIVE PEDIATRIC. pptx
AneetaSharma15
 
PDF
Sunset Boulevard Student Revision Booklet
jpinnuck
 
PPTX
Artificial-Intelligence-in-Drug-Discovery by R D Jawarkar.pptx
Rahul Jawarkar
 
PDF
1.Natural-Resources-and-Their-Use.ppt pdf /8th class social science Exploring...
Sandeep Swamy
 
PDF
Phylum Arthropoda: Characteristics and Classification, Entomology Lecture
Miraj Khan
 
PPTX
Software Engineering BSC DS UNIT 1 .pptx
Dr. Pallawi Bulakh
 
PDF
Types of Literary Text: Poetry and Prose
kaelandreabibit
 
PPTX
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
PDF
RA 12028_ARAL_Orientation_Day-2-Sessions_v2.pdf
Seven De Los Reyes
 
PPTX
Python-Application-in-Drug-Design by R D Jawarkar.pptx
Rahul Jawarkar
 
PPTX
CONCEPT OF CHILD CARE. pptx
AneetaSharma15
 
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
Priyanshu Anand
 
UTS Health Student Promotional Representative_Position Description.pdf
Faculty of Health, University of Technology Sydney
 
Review of Related Literature & Studies.pdf
Thelma Villaflores
 
Dakar Framework Education For All- 2000(Act)
santoshmohalik1
 
Health-The-Ultimate-Treasure (1).pdf/8th class science curiosity /samyans edu...
Sandeep Swamy
 
Introduction to pediatric nursing in 5th Sem..pptx
AneetaSharma15
 
PG-BPSDMP 2 TAHUN 2025PG-BPSDMP 2 TAHUN 2025.pdf
AshifaRamadhani
 
Python Programming Unit II Control Statements.ppt
CUO VEERANAN VEERANAN
 
Action Plan_ARAL PROGRAM_ STAND ALONE SHS.docx
Levenmartlacuna1
 
PREVENTIVE PEDIATRIC. pptx
AneetaSharma15
 
Sunset Boulevard Student Revision Booklet
jpinnuck
 
Artificial-Intelligence-in-Drug-Discovery by R D Jawarkar.pptx
Rahul Jawarkar
 
1.Natural-Resources-and-Their-Use.ppt pdf /8th class social science Exploring...
Sandeep Swamy
 
Phylum Arthropoda: Characteristics and Classification, Entomology Lecture
Miraj Khan
 
Software Engineering BSC DS UNIT 1 .pptx
Dr. Pallawi Bulakh
 
Types of Literary Text: Poetry and Prose
kaelandreabibit
 
An introduction to Prepositions for beginners.pptx
drsiddhantnagine
 
RA 12028_ARAL_Orientation_Day-2-Sessions_v2.pdf
Seven De Los Reyes
 
Python-Application-in-Drug-Design by R D Jawarkar.pptx
Rahul Jawarkar
 
CONCEPT OF CHILD CARE. pptx
AneetaSharma15
 

JS Fest 2019/Autumn. Андрей Андрийко. Гексагональна архітектура в Nodejs проекті