SlideShare a Scribd company logo
1 of 14
Монолитное приложение или Микросервисы
Развитие монолитного приложения
сложность системы постоянно растет
система переходит из поколения в поколение, ни один разработчик не знает
систему полностью;
отслеживание и устранении ошибок занимает все больше времени;
дорого вносить изменения;
“застревание” на технологиях;
монолит трудно “разобрать” для тестирования;
приложение тесно связано с выбранной технологией реализации.
Что же такое микросервисная архитектура?
Это архитектурный шаблон, в котором сервисы:
1. маленькие: один сервис - одна бизнес-задача,
2. сфокусированные: cервис решает только одну бизнес-задачу, и решает ее
хорошо,
3. слабосвязанные: изменение одного сервиса не требует изменений в другом,
4. высокосогласованные: сервис содержит все нужные методы решения
поставленной задачи.
Микросервисы - за и против
+
● меньше кода
● можно выбрать оптимальную
технологию для каждой задачи
● гибкое масштабирование
● простое добавление unit-тестов
● легкость обновления
● управление небольшой командой
разработчиков
● модульность
-
● множество сетевых взаимодействий
● большое количество асинхронных
операций
● высокие требования к devOps команде
● сложность тестирования всего
приложения
● необходим мониторинг
согласованности данных
● средства обеспечения безопасности
для микросервисной архитектуры
находятся в стадии разработки
Масштабирование
Манифест Джеффа Безоса (Amazon CEO)
Сложность vs Производительность
От монолита к микросервисам
Микросервисы и NodeJS
Pattern Matching
Независимость от транспорта
Компонентизация
Сообщение в Seneca
Много небольших процессов, которые выполняют единственную задачу и
делают это хорошо. Общаются друг с другом при помощи асинхронных
сообщений.
“Tweet a message” выполняемый
TwitterService
{
command: “tweet”,
message: “Hello, World!”,
author: “Me”
}
TwitterService
Видит command: “tweet”.
Это мое сообщение!
Не важно как оно доставлено,
остальные детали также не
имеют значения.
Пример кода микросервиса
Веб-конфигурация Seneca
Node .js microservices

More Related Content

Similar to Node .js microservices

Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ Provectus
 
ALM Summit 2016 - Кроссплатформенный ALM с инструментами Microsoft
ALM Summit 2016 - Кроссплатформенный ALM с инструментами MicrosoftALM Summit 2016 - Кроссплатформенный ALM с инструментами Microsoft
ALM Summit 2016 - Кроссплатформенный ALM с инструментами MicrosoftMicrosoft
 
MPD2011 | Андрей Михайлов "Как ускорить и удешевить разработку мобильного при...
MPD2011 | Андрей Михайлов "Как ускорить и удешевить разработку мобильного при...MPD2011 | Андрей Михайлов "Как ускорить и удешевить разработку мобильного при...
MPD2011 | Андрей Михайлов "Как ускорить и удешевить разработку мобильного при...ITGinGer
 
Node.js microservices
Node.js microservicesNode.js microservices
Node.js microservicesAndrij Tytar
 
NodeJS микросервисная архитектура, Андрей Титарь
NodeJS микросервисная архитектура, Андрей ТитарьNodeJS микросервисная архитектура, Андрей Титарь
NodeJS микросервисная архитектура, Андрей ТитарьSigma Software
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllMykyta Hopkalo
 
MBSE Sorokin Michael Vostok Egineering
MBSE Sorokin Michael Vostok EgineeringMBSE Sorokin Michael Vostok Egineering
MBSE Sorokin Michael Vostok EgineeringAPPAU_Ukraine
 
презентация
презентацияпрезентация
презентацияISUIA
 
Почему стоит поступать на направление 15.04.04
Почему стоит поступать на направление 15.04.04Почему стоит поступать на направление 15.04.04
Почему стоит поступать на направление 15.04.04valdemar1353
 
гибкая методология разработки по
гибкая методология разработки погибкая методология разработки по
гибкая методология разработки поpoverhnost
 
ARinteg: Защита сетевого периметра
ARinteg: Защита сетевого периметраARinteg: Защита сетевого периметра
ARinteg: Защита сетевого периметраExpolink
 
InfoWatch. Рустем Хайретдинов "Защита интернет-банка - от разработки до транз...
InfoWatch. Рустем Хайретдинов "Защита интернет-банка - от разработки до транз...InfoWatch. Рустем Хайретдинов "Защита интернет-банка - от разработки до транз...
InfoWatch. Рустем Хайретдинов "Защита интернет-банка - от разработки до транз...Expolink
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураVyacheslav Benedichuk
 
Пять шагов для защиты ЦОД. Почему традиционная защита может оказаться неэффек...
Пять шагов для защиты ЦОД. Почему традиционная защита может оказаться неэффек...Пять шагов для защиты ЦОД. Почему традиционная защита может оказаться неэффек...
Пять шагов для защиты ЦОД. Почему традиционная защита может оказаться неэффек...Cisco Russia
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rusMaxim Shaptala
 
SOLID – принципы объектно-ориентированного дизайна
SOLID – принципы объектно-ориентированного дизайнаSOLID – принципы объектно-ориентированного дизайна
SOLID – принципы объектно-ориентированного дизайнаPavel Treshnikov
 
Vblock: как должна выглядеть конвергентная инфраструктура современного ЦОД
Vblock: как должна выглядеть конвергентная инфраструктура современного ЦОДVblock: как должна выглядеть конвергентная инфраструктура современного ЦОД
Vblock: как должна выглядеть конвергентная инфраструктура современного ЦОДCisco Russia
 
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...Tatyanazaxarova
 
Разработка веб-сервисов осень 2013 лекция 5
Разработка веб-сервисов осень 2013 лекция 5Разработка веб-сервисов осень 2013 лекция 5
Разработка веб-сервисов осень 2013 лекция 5Technopark
 

Similar to Node .js microservices (20)

Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
Eduard Dautov (Provectus): СКОРИНГ ML МОДЕЛЕЙ В МИКРОСЕРВИСНОЙ АРХИТЕКТУРЕ
 
ALM Summit 2016 - Кроссплатформенный ALM с инструментами Microsoft
ALM Summit 2016 - Кроссплатформенный ALM с инструментами MicrosoftALM Summit 2016 - Кроссплатформенный ALM с инструментами Microsoft
ALM Summit 2016 - Кроссплатформенный ALM с инструментами Microsoft
 
MPD2011 | Андрей Михайлов "Как ускорить и удешевить разработку мобильного при...
MPD2011 | Андрей Михайлов "Как ускорить и удешевить разработку мобильного при...MPD2011 | Андрей Михайлов "Как ускорить и удешевить разработку мобильного при...
MPD2011 | Андрей Михайлов "Как ускорить и удешевить разработку мобильного при...
 
Node.js microservices
Node.js microservicesNode.js microservices
Node.js microservices
 
NodeJS микросервисная архитектура, Андрей Титарь
NodeJS микросервисная архитектура, Андрей ТитарьNodeJS микросервисная архитектура, Андрей Титарь
NodeJS микросервисная архитектура, Андрей Титарь
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controll
 
MBSE Sorokin Michael Vostok Egineering
MBSE Sorokin Michael Vostok EgineeringMBSE Sorokin Michael Vostok Egineering
MBSE Sorokin Michael Vostok Egineering
 
презентация
презентацияпрезентация
презентация
 
Почему стоит поступать на направление 15.04.04
Почему стоит поступать на направление 15.04.04Почему стоит поступать на направление 15.04.04
Почему стоит поступать на направление 15.04.04
 
гибкая методология разработки по
гибкая методология разработки погибкая методология разработки по
гибкая методология разработки по
 
ARinteg: Защита сетевого периметра
ARinteg: Защита сетевого периметраARinteg: Защита сетевого периметра
ARinteg: Защита сетевого периметра
 
InfoWatch. Рустем Хайретдинов "Защита интернет-банка - от разработки до транз...
InfoWatch. Рустем Хайретдинов "Защита интернет-банка - от разработки до транз...InfoWatch. Рустем Хайретдинов "Защита интернет-банка - от разработки до транз...
InfoWatch. Рустем Хайретдинов "Защита интернет-банка - от разработки до транз...
 
Потоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектураПотоковая обработка данных и Микросервисная архитектура
Потоковая обработка данных и Микросервисная архитектура
 
Пять шагов для защиты ЦОД. Почему традиционная защита может оказаться неэффек...
Пять шагов для защиты ЦОД. Почему традиционная защита может оказаться неэффек...Пять шагов для защиты ЦОД. Почему традиционная защита может оказаться неэффек...
Пять шагов для защиты ЦОД. Почему традиционная защита может оказаться неэффек...
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rus
 
SOLID – принципы объектно-ориентированного дизайна
SOLID – принципы объектно-ориентированного дизайнаSOLID – принципы объектно-ориентированного дизайна
SOLID – принципы объектно-ориентированного дизайна
 
Vblock: как должна выглядеть конвергентная инфраструктура современного ЦОД
Vblock: как должна выглядеть конвергентная инфраструктура современного ЦОДVblock: как должна выглядеть конвергентная инфраструктура современного ЦОД
Vblock: как должна выглядеть конвергентная инфраструктура современного ЦОД
 
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...
Поиск ловушек в Си/Си++ коде при переносе приложений под 64-битную версию Win...
 
Разработка веб-сервисов осень 2013 лекция 5
Разработка веб-сервисов осень 2013 лекция 5Разработка веб-сервисов осень 2013 лекция 5
Разработка веб-сервисов осень 2013 лекция 5
 
Основные конкурентные преимущества системы электронного документооборота Naum...
Основные конкурентные преимущества системы электронного документооборота Naum...Основные конкурентные преимущества системы электронного документооборота Naum...
Основные конкурентные преимущества системы электронного документооборота Naum...
 

More from STEP Computer Academy (Zaporozhye)

1 Презентация функциональное программирование
1 Презентация функциональное программирование1 Презентация функциональное программирование
1 Презентация функциональное программированиеSTEP Computer Academy (Zaporozhye)
 
Путь UI developer. От «Белого» пояса к «черному»
Путь UI developer. От «Белого» пояса к «черному»Путь UI developer. От «Белого» пояса к «черному»
Путь UI developer. От «Белого» пояса к «черному»STEP Computer Academy (Zaporozhye)
 
Html5 canvas и электронный документооборот
Html5 canvas и электронный документооборотHtml5 canvas и электронный документооборот
Html5 canvas и электронный документооборотSTEP Computer Academy (Zaporozhye)
 
Дипломная работа ЗФКА "ШАГ" (2015) - Хетагуров М. В.
Дипломная работа ЗФКА "ШАГ" (2015) - Хетагуров М. В. Дипломная работа ЗФКА "ШАГ" (2015) - Хетагуров М. В.
Дипломная работа ЗФКА "ШАГ" (2015) - Хетагуров М. В. STEP Computer Academy (Zaporozhye)
 
Дипломная работа ЗФКА "ШАГ" (2015) - Торба А.С.
Дипломная работа ЗФКА "ШАГ" (2015) - Торба А.С.Дипломная работа ЗФКА "ШАГ" (2015) - Торба А.С.
Дипломная работа ЗФКА "ШАГ" (2015) - Торба А.С.STEP Computer Academy (Zaporozhye)
 
Дипломная работа ЗФКА "ШАГ" 2015) - Пантилимонова Е.И.
Дипломная работа ЗФКА "ШАГ" 2015) - Пантилимонова Е.И.Дипломная работа ЗФКА "ШАГ" 2015) - Пантилимонова Е.И.
Дипломная работа ЗФКА "ШАГ" 2015) - Пантилимонова Е.И.STEP Computer Academy (Zaporozhye)
 
Дипломный проект ЗФКА "ШАГ" (2015) - Ищенко А.С.
Дипломный проект ЗФКА "ШАГ" (2015) - Ищенко А.С.Дипломный проект ЗФКА "ШАГ" (2015) - Ищенко А.С.
Дипломный проект ЗФКА "ШАГ" (2015) - Ищенко А.С.STEP Computer Academy (Zaporozhye)
 
Дипломная работа ЗФКА "ШАГ" (2015) - Жучков С.А.
Дипломная работа ЗФКА "ШАГ" (2015) - Жучков С.А. Дипломная работа ЗФКА "ШАГ" (2015) - Жучков С.А.
Дипломная работа ЗФКА "ШАГ" (2015) - Жучков С.А. STEP Computer Academy (Zaporozhye)
 
Дипломная работа "ЗФКА "ШАГ" (2015) - Есина Ю.Ю.
Дипломная работа "ЗФКА "ШАГ" (2015) - Есина Ю.Ю. Дипломная работа "ЗФКА "ШАГ" (2015) - Есина Ю.Ю.
Дипломная работа "ЗФКА "ШАГ" (2015) - Есина Ю.Ю. STEP Computer Academy (Zaporozhye)
 
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"STEP Computer Academy (Zaporozhye)
 

More from STEP Computer Academy (Zaporozhye) (18)

X-Lab презентация
X-Lab презентацияX-Lab презентация
X-Lab презентация
 
Service workers
Service workersService workers
Service workers
 
PWA: Progressive Web Application
PWA: Progressive Web ApplicationPWA: Progressive Web Application
PWA: Progressive Web Application
 
Framework Battle: Django vs Flask vs Chalice
Framework Battle: Django vs Flask vs ChaliceFramework Battle: Django vs Flask vs Chalice
Framework Battle: Django vs Flask vs Chalice
 
Парсер: что? зачем? как?
Парсер: что? зачем? как?Парсер: что? зачем? как?
Парсер: что? зачем? как?
 
3 Презентация Kotlin - why not?
3 Презентация Kotlin - why not?3 Презентация Kotlin - why not?
3 Презентация Kotlin - why not?
 
2 презентация rx java+android
2 презентация rx java+android2 презентация rx java+android
2 презентация rx java+android
 
1 Презентация функциональное программирование
1 Презентация функциональное программирование1 Презентация функциональное программирование
1 Презентация функциональное программирование
 
Путь UI developer. От «Белого» пояса к «черному»
Путь UI developer. От «Белого» пояса к «черному»Путь UI developer. От «Белого» пояса к «черному»
Путь UI developer. От «Белого» пояса к «черному»
 
Html5 canvas и электронный документооборот
Html5 canvas и электронный документооборотHtml5 canvas и электронный документооборот
Html5 canvas и электронный документооборот
 
Golden Byte 2016
Golden Byte 2016Golden Byte 2016
Golden Byte 2016
 
Дипломная работа ЗФКА "ШАГ" (2015) - Хетагуров М. В.
Дипломная работа ЗФКА "ШАГ" (2015) - Хетагуров М. В. Дипломная работа ЗФКА "ШАГ" (2015) - Хетагуров М. В.
Дипломная работа ЗФКА "ШАГ" (2015) - Хетагуров М. В.
 
Дипломная работа ЗФКА "ШАГ" (2015) - Торба А.С.
Дипломная работа ЗФКА "ШАГ" (2015) - Торба А.С.Дипломная работа ЗФКА "ШАГ" (2015) - Торба А.С.
Дипломная работа ЗФКА "ШАГ" (2015) - Торба А.С.
 
Дипломная работа ЗФКА "ШАГ" 2015) - Пантилимонова Е.И.
Дипломная работа ЗФКА "ШАГ" 2015) - Пантилимонова Е.И.Дипломная работа ЗФКА "ШАГ" 2015) - Пантилимонова Е.И.
Дипломная работа ЗФКА "ШАГ" 2015) - Пантилимонова Е.И.
 
Дипломный проект ЗФКА "ШАГ" (2015) - Ищенко А.С.
Дипломный проект ЗФКА "ШАГ" (2015) - Ищенко А.С.Дипломный проект ЗФКА "ШАГ" (2015) - Ищенко А.С.
Дипломный проект ЗФКА "ШАГ" (2015) - Ищенко А.С.
 
Дипломная работа ЗФКА "ШАГ" (2015) - Жучков С.А.
Дипломная работа ЗФКА "ШАГ" (2015) - Жучков С.А. Дипломная работа ЗФКА "ШАГ" (2015) - Жучков С.А.
Дипломная работа ЗФКА "ШАГ" (2015) - Жучков С.А.
 
Дипломная работа "ЗФКА "ШАГ" (2015) - Есина Ю.Ю.
Дипломная работа "ЗФКА "ШАГ" (2015) - Есина Ю.Ю. Дипломная работа "ЗФКА "ШАГ" (2015) - Есина Ю.Ю.
Дипломная работа "ЗФКА "ШАГ" (2015) - Есина Ю.Ю.
 
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
 

Node .js microservices

  • 1.
  • 3. Развитие монолитного приложения сложность системы постоянно растет система переходит из поколения в поколение, ни один разработчик не знает систему полностью; отслеживание и устранении ошибок занимает все больше времени; дорого вносить изменения; “застревание” на технологиях; монолит трудно “разобрать” для тестирования; приложение тесно связано с выбранной технологией реализации.
  • 4. Что же такое микросервисная архитектура? Это архитектурный шаблон, в котором сервисы: 1. маленькие: один сервис - одна бизнес-задача, 2. сфокусированные: cервис решает только одну бизнес-задачу, и решает ее хорошо, 3. слабосвязанные: изменение одного сервиса не требует изменений в другом, 4. высокосогласованные: сервис содержит все нужные методы решения поставленной задачи.
  • 5. Микросервисы - за и против + ● меньше кода ● можно выбрать оптимальную технологию для каждой задачи ● гибкое масштабирование ● простое добавление unit-тестов ● легкость обновления ● управление небольшой командой разработчиков ● модульность - ● множество сетевых взаимодействий ● большое количество асинхронных операций ● высокие требования к devOps команде ● сложность тестирования всего приложения ● необходим мониторинг согласованности данных ● средства обеспечения безопасности для микросервисной архитектуры находятся в стадии разработки
  • 9. От монолита к микросервисам
  • 10. Микросервисы и NodeJS Pattern Matching Независимость от транспорта Компонентизация
  • 11. Сообщение в Seneca Много небольших процессов, которые выполняют единственную задачу и делают это хорошо. Общаются друг с другом при помощи асинхронных сообщений. “Tweet a message” выполняемый TwitterService { command: “tweet”, message: “Hello, World!”, author: “Me” } TwitterService Видит command: “tweet”. Это мое сообщение! Не важно как оно доставлено, остальные детали также не имеют значения.

Editor's Notes

  1. https://habrahabr.ru/company/dataart/blog/280083/
  2. https://habrahabr.ru/company/dataart/blog/280083/
  3. https://habrahabr.ru/company/dataart/blog/280083/ http://devopsru.com/news/2016-05-10-microservice-trade-offs.html http://3gamma.com/insights/architecting-speed-agile-innovators-accelerate-growth-microservices/
  4. https://habrahabr.ru/company/dataart/blog/280083/ http://devopsru.com/news/2016-05-10-microservice-trade-offs.html http://3gamma.com/insights/architecting-speed-agile-innovators-accelerate-growth-microservices/
  5. https://habrahabr.ru/company/dataart/blog/280083/ http://devopsru.com/news/2016-05-10-microservice-trade-offs.html http://3gamma.com/insights/architecting-speed-agile-innovators-accelerate-growth-microservices/
  6. https://habrahabr.ru/company/dataart/blog/280083/ http://devopsru.com/news/2016-05-10-microservice-trade-offs.html http://3gamma.com/insights/architecting-speed-agile-innovators-accelerate-growth-microservices/
  7. https://habrahabr.ru/company/dataart/blog/280083/ http://devopsru.com/news/2016-05-10-microservice-trade-offs.html http://3gamma.com/insights/architecting-speed-agile-innovators-accelerate-growth-microservices/
  8. https://www.slideshare.net/Designveloper-DSV/microservices-with-senecajs https://www.slideshare.net/Designveloper-DSV/microservices-with-senecajs-part-2 http://senecajs.org/getting-started/ https://www.codementor.io/ivan.jovanovic/introduction-to-nodejs-microservices-senecajs-du1088h3k https://www.slideshare.net/rjrodger/the-seneca-pattern-at-engineyard-distill-2013-conference
  9. https://www.slideshare.net/Designveloper-DSV/microservices-with-senecajs https://www.slideshare.net/Designveloper-DSV/microservices-with-senecajs-part-2 http://senecajs.org/getting-started/ https://www.codementor.io/ivan.jovanovic/introduction-to-nodejs-microservices-senecajs-du1088h3k https://www.slideshare.net/rjrodger/the-seneca-pattern-at-engineyard-distill-2013-conference
  10. https://www.slideshare.net/Designveloper-DSV/microservices-with-senecajs https://www.slideshare.net/Designveloper-DSV/microservices-with-senecajs-part-2 http://senecajs.org/getting-started/ https://www.codementor.io/ivan.jovanovic/introduction-to-nodejs-microservices-senecajs-du1088h3k https://www.slideshare.net/rjrodger/the-seneca-pattern-at-engineyard-distill-2013-conference
  11. https://www.slideshare.net/Designveloper-DSV/microservices-with-senecajs https://www.slideshare.net/Designveloper-DSV/microservices-with-senecajs-part-2 http://senecajs.org/getting-started/ https://www.codementor.io/ivan.jovanovic/introduction-to-nodejs-microservices-senecajs-du1088h3k https://www.slideshare.net/rjrodger/the-seneca-pattern-at-engineyard-distill-2013-conference
  12. https://www.slideshare.net/Designveloper-DSV/microservices-with-senecajs https://www.slideshare.net/Designveloper-DSV/microservices-with-senecajs-part-2 http://senecajs.org/getting-started/ https://www.codementor.io/ivan.jovanovic/introduction-to-nodejs-microservices-senecajs-du1088h3k https://www.slideshare.net/rjrodger/the-seneca-pattern-at-engineyard-distill-2013-conference