Complex event flows in distributed systems

Size: px
Start display at page:

Download "Complex event flows in distributed systems"

Transcription

1 Complex event flows in distributed With thoughts

2 3 common hypotheses I check today: # Events decrease coupling # Orchestration needs to be avoided # Workflow engines are painful

3 Bernd Ruecker Co-founder and Developer Advocate of Camunda Berlin,

4

5 Simplified example: dash button Photo by 0xF2, available under Creative Commons BY-ND 2.0 license.

6 Three steps

7 Who is involved? Some bounded contexts Checkout Inventory Shipment

8 (Micro-)services Checkout Inventory Shipment

9 Autonomous (micro-)services Checkout Dedicated Application Processes Dedicated infrastructure Inventory Shipment Dedicated Development Teams

10 Events decrease coupling

11 Example Checkout The button blinks if we can ship within 24 hours Inventory Shipment

12 Request/response: temporal coupling Checkout The button blinks if we can ship within 24 hours Request Response Inventory Shipment

13 Temporal decoupling with events and read models Read Model Checkout The button blinks if we can ship within 24 hours Good Fetched Inventory Good Stored Shipment *Events are facts about what happened (in the past)

14 Events can decrease coupling* *e.g. decentral data-management, read models, extract cross-cutting aspects

15 Peer-to-peer event chains Order placed Checkout received Inventory Goods fetched Shipment Goods shipped

16 Peer-to-peer event chains Order placed Checkout received Inventory Goods fetched Shipment Goods shipped

17 The danger is that it's very easy to make nicely decoupled systems with event notification, without realizing that you're losing sight of that larger-scale flow, and thus set yourself up for trouble in future years.

18 The danger is that it's very easy to make nicely decoupled systems with event notification, without realizing that you're losing sight of that larger-scale flow, and thus set yourself up for trouble in future years.

19 The danger is that it's very easy to make nicely decoupled systems with event notification, without realizing that you're losing sight of that larger-scale flow, and thus set yourself up for trouble in future years.

20 Peer-to-peer event chains Order placed Fetch the goods before the payment Checkout received Inventory Goods fetched Shipment Goods shipped

21 Peer-to-peer event chains Order placed Fetch the goods before the payment Checkout received Inventory Goods fetched Shipment Goods shipped Customers can pay via invoice

22 Peer-to-peer event chains Order placed Fetch the goods before the payment Checkout received Inventory Goods fetched Shipment Goods shipped

23 Peer-to-peer event chains Order placed Fetch the goods before the payment Checkout received Inventory Goods fetched Shipment Goods shipped

24 Photo by born1945, available under Creative Commons BY 2.0 license.

25 Extract the end-to-end responsibility Order placed Checkout Retrieve payment Order received Inventory Shipment *Commands have an intent about what needs to happen in the future

26 Commands help to avoid (complex) peer-to-peer event chains

27 Orchestration needs to be avoided

28 Smart ESB-like middleware Order Checkout Order placed received Inventory Shipment Good fetched Good shipped

29 Dumb pipes Checkout Order Martin Fowler Inventory Shipment Smart endpoints and dumb pipes

30 Danger of god services? Checkout Order Sam Newmann Inventory Shipment A few smart god services tell anemic CRUD services what to do

31 Danger of god services? Checkout Order Sam Newmann Inventory Shipment A few smart god services tell anemic CRUD services what to do

32 A god service is only created by bad API design!

33 Example Order Retrieve

34 Example Order Retrieve Credit Card

35 Example Order Retrieve Credit Card Rejected

36 Example Order Retrieve Rejected Rejected Credit Card If the credit card was rejected, the customer can provide new details Client of dumb endpoints easily become a god services.

37 Who is responsible to deal with problems? Order Retrieve Credit Card Rejected received failed If the credit card was rejected, the customer can provide new details

38 Long-running execution Order Retrieve Credit Card Smart endpoints are potentially long-running Rejected received failed If the credit card was rejected, the customer can provide new details Clients of smart endpoints remains lean.

39 Handling State Persist thing (Entity, Document, Actor, ) State machine or workflow engine Typical concerns DIY = effort, accidental complexity Scheduling, Versioning, operating, visibility, scalability,

40 Workflow engines are painful Complex, proprietary, heavyweight, central, developer adverse,

41 Avoid the wrong tools! Low-code is great! (You can get rid of your developers!) Death by properties panel Complex, proprietary, heavyweight, central, developer adverse,

42 Workflow engines, state machines It is relevant in modern architectures

43 Workflow engines, state machines CADENCE Silicon valley has recognized

44

45 Workflow engines, state machines CADENCE

46 Workflow engines, state machines CADENCE also at scale

47 Zeebe.io

48 public static void main(string[] args) { ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration().buildProcessEngine(); } engine.getrepositoryservice().createdeployment() //.addmodelinstance("flow.bpmn", Bpmn.createExecutableProcess("flow") //.startevent().servicetask("step1").camundaclass(sysoutdelegate.class).servicetask("step2").camundaclass(sysoutdelegate.class) What do I mean by.endevent().done() ).deploy(); leightweight? engine.getruntimeservice().startprocessinstancebykey( "flow", Variables.putValue("city", "New York")); } public class SysoutDelegate implements JavaDelegate { public void execute(delegateexecution execution) throws Exception { System.out.println("Hello " + execution.getvariable("city")); }

49 public static void main(string[] args) { ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration().buildProcessEngine(); engine.getrepositoryservice().createdeployment() //.addmodelinstance("flow.bpmn", Bpmn.createExecutableProcess("flow") //.startevent().servicetask("step1").camundaclass(sysoutdelegate.class).servicetask("step2").camundaclass(sysoutdelegate.class).endevent().done() ).deploy(); Build engine in one line of code (using inmemory H2) engine.getruntimeservice().startprocessinstancebykey( "flow", Variables.putValue("city", "New York")); } public class SysoutDelegate implements JavaDelegate { public void execute(delegateexecution execution) throws Exception { System.out.println("Hello " + execution.getvariable("city")); } }

50 public static void main(string[] args) { ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration().buildProcessEngine(); engine.getrepositoryservice().createdeployment() //.addmodelinstance("flow.bpmn", Bpmn.createExecutableProcess("flow").startEvent().serviceTask("Step1").camundaClass(SysoutDelegate.class).serviceTask("Step2").camundaClass(SysoutDelegate.class).endEvent().done() ).deploy(); Define flow e.g. in Java DSL engine.getruntimeservice().startprocessinstancebykey( "flow", Variables.putValue("city", "New York")); } public class SysoutDelegate implements JavaDelegate { public void execute(delegateexecution execution) throws Exception { System.out.println("Hello " + execution.getvariable("city")); } }

51 public static void main(string[] args) { ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration().buildProcessEngine(); engine.getrepositoryservice().createdeployment() //.addmodelinstance("flow.bpmn", Bpmn.createExecutableProcess("flow").startEvent().serviceTask("Step1").camundaClass(SysoutDelegate.class).serviceTask("Step2").camundaClass(SysoutDelegate.class).endEvent().done() ).deploy(); Define flow e.g. in Java DSL engine.getruntimeservice().startprocessinstancebykey( "flow", Variables.putValue("city", "New York")); } public class SysoutDelegate implements JavaDelegate { public void execute(delegateexecution execution) throws Exception { System.out.println("Hello " + execution.getvariable("city")); } }

52 BPMN Business Process Model and Notation ISO Standard

53 public static void main(string[] args) { ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration().buildProcessEngine(); engine.getrepositoryservice().createdeployment() //.addmodelinstance("flow.bpmn", Bpmn.createExecutableProcess("flow").startEvent().serviceTask("Step1").camundaClass(SysoutDelegate.class).serviceTask("Step2").camundaClass(SysoutDelegate.class).endEvent().done() ).deploy(); We can attach code engine.getruntimeservice().startprocessinstancebykey( "flow", Variables.putValue("city", "New York")); } public class SysoutDelegate implements JavaDelegate { public void execute(delegateexecution execution) throws Exception { System.out.println("Hello " + execution.getvariable("city")); } }

54 public static void main(string[] args) { ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration().buildProcessEngine(); engine.getrepositoryservice().createdeployment() //.addmodelinstance("flow.bpmn", Bpmn.createExecutableProcess("flow").startEvent().serviceTask("Step1").camundaClass(SysoutDelegate.class).serviceTask("Step2").camundaClass(SysoutDelegate.class).endEvent().done() ).deploy(); engine.getruntimeservice().startprocessinstancebykey( "flow", Variables.putValue("city", "New York")); } public class SysoutDelegate implements JavaDelegate { public void execute(delegateexecution execution) throws Exception { System.out.println("Hello " + execution.getvariable("city")); } } that is called when workflow instances pass through

55 public static void main(string[] args) { ProcessEngine engine = new StandaloneInMemProcessEngineConfiguration().buildProcessEngine(); engine.getrepositoryservice().createdeployment() //.addmodelinstance("flow.bpmn", Bpmn.createExecutableProcess("flow").startEvent().serviceTask("Step1").camundaClass(SysoutDelegate.class).serviceTask("Step2").camundaClass(SysoutDelegate.class).endEvent().done() ).deploy(); engine.getruntimeservice().startprocessinstancebykey( "flow", Variables.putValue("city", "New York")); } public class SysoutDelegate implements JavaDelegate { public void execute(delegateexecution execution) throws Exception { System.out.println("Hello " + execution.getvariable("city")); } } Start instances

56 Now you have a state machine!

57 Easy to handle time

58 @martinschimak

59 Synchronous communication Order REST Credit Card

60 Synchronous communication Order REST Credit Card

61 Synchronous communication Order REST Credit Card

62 Synchronous communication Order REST Credit Card Stateful Retry

63 Distributed systems

64 It is impossible to differentiate certain failure scenarios. Client Service Provider Independant of communication style!

65 Distributed systems introduce complexity you have to tackle! REST Credit Card

66 Distributed systems introduce complexity you have to tackle! REST Credit Card

67 Distributed systems

68 Distributed transactions using compensation * Compensation

69 Relaxed consistency Temporarily inconsistent state But eventually consistent No Isolation (as in ACID)

70

71 Use cases for workflow automation Business Distributed Transactions Business processes automation IT Communication in distributed systems Orchestration <= milliseconds seconds minutes, weeks, always short running short running, but potentially long running long running

72 Biz Dev Ops improve communication improve communication

73 Biz Dev Ops improve communication improve communication Leverage state machine & workflow engine Living documentation Visibility in testing

74 Visual HTML reports for test cases

75 Biz Dev Ops improve communication improve communication Understand and discuss business processes Evaluate optimizations in-sync with implementation Leverage state machine & workflow engine Living documentation Visibility in testing

76 Living documentation for long-running behaviour

77 Biz Dev Ops improve communication improve communication Understand and discuss business processes Evaluate optimizations in-sync with implementation Leverage state machine & workflow engine Living documentation Visibility in testing

78 Biz Dev Ops improve communication improve communication Understand and discuss business processes Evaluate optimizations in-sync with implementation Leverage state machine & workflow engine Living documentation Visibility in testing Operate with visibility and context

79 Proper Operations Visibility + Context

80 Before mapping processes explicitly with BPMN, the truth was buried in the code and nobody knew what was going on. Jimmy Floyd, 24 Hour Fitnesse

81 Workflows live inside service boundaries

82 Manigfold architecture options

83 Manigfold architecture options

84 Manigfold architecture options

85 Manigfold architecture options

86 Manigfold architecture options

87 Lightweight workflow engines are great* don t DIY *e.g. enabling potentially long-running services, solving hard developer problems, can run decentralized

88 Sales-Order & Order-Fulfillment via Camunda for every order worldwide (Q2 2017: 22,2 Mio)

89 Code example & live demo Checkout Order Inventory Shipping Monitor Human Tasks H2 H2

90 # Events decrease coupling: sometimes read-models, but no complex peer-to-peer event chains! # Orchestration needs to be avoided: sometimes no ESB, smart endpoints/dumb pipes, important capabilities need a home # Workflow engines are painful: some of them lightweight engines are easy to use and can run decentralized, they solve hard developer problems, don t DIY

91 Thank you!

92 Contact: Slides: Blog: application-development/ 3-common-pitfalls-of-microservicesintegrationand-how-to-avoid-them.html With thoughts

MICROSERVICES ORCHESTRATIONS WITH BPM. Dr. Marigianna Skouradaki

MICROSERVICES ORCHESTRATIONS WITH BPM. Dr. Marigianna Skouradaki 1 MICROSERVICES ORCHESTRATIONS WITH BPM Dr. Marigianna Skouradaki Microservices To BPM or not to BPM? 2 Source: https://goo.gl/yf951d Source: https://goo.gl/b9y6th Source: https://goo.gl/ypbrkz Source:

More information

Managing Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup

Managing Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup Managing Data at Scale: Microservices and Events Randy Shoup @randyshoup linkedin.com/in/randyshoup Background VP Engineering at Stitch Fix o Combining Art and Science to revolutionize apparel retail Consulting

More information

ACID Is So Yesterday: Maintaining Data Consistency with Sagas

ACID Is So Yesterday: Maintaining Data Consistency with Sagas ACID Is So Yesterday: Maintaining Data Consistency with Sagas Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action chris@chrisrichardson.net http://eventuate.io

More information

Next Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4

Next Paradigm for Decentralized Apps. Table of Contents 1. Introduction 1. Color Spectrum Overview 3. Two-tier Architecture of Color Spectrum 4 Color Spectrum: Next Paradigm for Decentralized Apps Table of Contents Table of Contents 1 Introduction 1 Color Spectrum Overview 3 Two-tier Architecture of Color Spectrum 4 Clouds in Color Spectrum 4

More information

Think Small: API Architecture For The Enterprise

Think Small: API Architecture For The Enterprise Think Small: API Architecture For The Enterprise Ed Julson - TIBCO Product Marketing Raji Narayanan - TIBCO Product Management October 25, 2017 DISCLAIMER During the course of this presentation, TIBCO

More information

Managing data consistency in a microservice architecture using Sagas

Managing data consistency in a microservice architecture using Sagas Managing data consistency in a microservice architecture using Sagas Chris Richardson Founder of eventuate.io Author of Microservices Patterns Founder of the original CloudFoundry.com Author of POJOs in

More information

i95dev NAV Connect User Manual

i95dev NAV Connect User Manual Table of Contents i95dev NAV Connect User Manual www.i95dev.com USA Australia India Copyright 2016 i95dev. All Rights Reserved 1 Table of Contents 1. Introduction... 3 1.1. About this guide... 3 1.2. Terminologies...

More information

i95dev SAP Connect User Manual

i95dev SAP Connect User Manual Table of Contents i95dev SAP Connect User Manual Version 1.0 www.i95dev.com USA Australia India Copyright 2016 i95dev. All Rights Reserved 1 Table of Contents 1. Introduction... 3 1.1. About this guide...

More information

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli Microservice Software Engineering II Sharif University of Technology MohammadAmin Fazli Topics Seams Why to split the monolith Tangled Dependencies Splitting and Refactoring Databases Transactional Boundaries

More information

Broken Promises.

Broken Promises. Broken Promises kiki @ lightbend @kikisworldrace Data is dangerous Microservices are usually required to cooperate to achieve some end goal. Microservices need to be able to trust each other in order to

More information

Microservices and Container Development

Microservices and Container Development Microservices and Container Development Red Hat Day Montreal May 19th, 2016 Martin Sauvé msauve@redhat.com (514)220-8113 Hoshi Ryokan Japanese Inn Founded 718 A.D. 46 generations of management 1300 years

More information

AN EVENTFUL TOUR FROM ENTERPRISE INTEGRATION TO SERVERLESS. Marius Bogoevici Christian Posta 9 May, 2018

AN EVENTFUL TOUR FROM ENTERPRISE INTEGRATION TO SERVERLESS. Marius Bogoevici Christian Posta 9 May, 2018 AN EVENTFUL TOUR FROM ENTERPRISE INTEGRATION TO SERVERLESS Marius Bogoevici (@mariusbogoevici) Christian Posta (@christianposta) 9 May, 2018 About Us Marius Bogoevici @mariusbogoevici Chief Architect -

More information

SOA = Same Old Architecture?

SOA = Same Old Architecture? SOA = Same Old Architecture? Gregor Hohpe Software Engineer www.eaipatterns.com Could It Be So Easy? WSDL SOAP WS-* Int MyMethod(String text) { } WebMethod Cut Copy Paste Buzzword compliant, but not a

More information

High Availability Distributed (Micro-)services. Clemens Vasters Microsoft

High Availability Distributed (Micro-)services. Clemens Vasters Microsoft High Availability Distributed (Micro-)services Clemens Vasters Microsoft Azure @clemensv ice Microsoft Azure services I work(-ed) on. Notification Hubs Service Bus Event Hubs Event Grid IoT Hub Relay Mobile

More information

Microservices Beyond the Hype. SATURN San Diego May 3, 2016 Paulo Merson

Microservices Beyond the Hype. SATURN San Diego May 3, 2016 Paulo Merson Microservices Beyond the Hype SATURN San Diego May 3, 2016 Paulo Merson Our goal Try to define microservice Discuss what you gain and what you lose with microservices 2 Defining Microservice Unfortunately

More information

Architecting and Implementing Domain-driven Design Patterns in.net

Architecting and Implementing Domain-driven Design Patterns in.net Architecting and Implementing Domain-driven Design Patterns in.net Dino Esposito JetBrains dino.esposito@jetbrains.com @despos facebook.com/naa4e WARNING This is NOT simply a shameless plug but a truly

More information

THE API DEVELOPER EXPERIENCE ENABLING RAPID INTEGRATION

THE API DEVELOPER EXPERIENCE ENABLING RAPID INTEGRATION THE API DEVELOPER EXPERIENCE ENABLING RAPID INTEGRATION Ramchandar Loganathan IBS Solution Architect Banks require application programming interface (API) capabilities to realize the significant benefits

More information

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 1 Introduction Modified by: Dr. Ramzi Saifan Definition of a Distributed System (1) A distributed

More information

Architectural Code Analysis. Using it in building Microservices NYC Cloud Expo 2017 (June 6-8)

Architectural Code Analysis. Using it in building Microservices NYC Cloud Expo 2017 (June 6-8) Architectural Code Analysis Using it in building Microservices NYC Cloud Expo 2017 (June 6-8) Agenda Intro to Structural Analysis Challenges addressed during traditional software development The new world

More information

Using sagas to maintain data consistency in a microservice architecture

Using sagas to maintain data consistency in a microservice architecture Using sagas to maintain data consistency in a microservice architecture Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action chris@chrisrichardson.net

More information

EMF Temporality. Jean-Claude Coté Éric Ladouceur

EMF Temporality. Jean-Claude Coté Éric Ladouceur EMF Temporality Jean-Claude Coté Éric Ladouceur 1 Introduction... 3 1.1 Dimensions of Time... 3 3 Proposed EMF implementation... 4 3.1 Modeled Persistence... 4 3.2 Modeled Temporal API... 5 3.2.1 Temporal

More information

Extending BPEL with transitions that can loop

Extending BPEL with transitions that can loop Extending BPEL with transitions that can loop ActiveVOS linksaretransitions BPEL Extension AN ACTIVE ENDPOINTS PAPER AUTHOR: DR MICHAEL ROWLEY 2009 Active Endpoints Inc. ActiveVOS is a trademark of Active

More information

How to Evaluate a Next Generation Mobile Platform

How to Evaluate a Next Generation Mobile Platform How to Evaluate a Next Generation Mobile Platform appcelerator.com Introduction Enterprises know that mobility presents an unprecedented opportunity to transform businesses and build towards competitive

More information

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav BUILDING MICROSERVICES ON AZURE ~ Vaibhav Gujral @vabgujral About Me Over 11 years of experience Working with Assurant Inc. Microsoft Certified Azure Architect MCSD, MCP, Microsoft Specialist Aspiring

More information

Microservices stress-free and without increased heart-attack risk

Microservices stress-free and without increased heart-attack risk Microservices stress-free and without increased heart-attack risk Uwe Friedrichsen (codecentric AG) microxchg Berlin, 12. February 2015 @ufried Uwe Friedrichsen uwe.friedrichsen@codecentric.de http://slideshare.net/ufried

More information

monolith to micro-services? event sourcing can help Doug

monolith to micro-services? event sourcing can help Doug monolith to micro-services? event sourcing can help Doug legacy Client Culture Amp (2012-2015) Rails App (Murmur) Read-write Query Server Read-only DB Our journey Our meandering path to CQRS & event sourcing

More information

Solution Overview Vectored Event Grid Architecture for Real-Time Intelligent Event Management

Solution Overview Vectored Event Grid Architecture for Real-Time Intelligent Event Management Solution Overview Vectored Event Grid Architecture for Real-Time Intelligent Event Management Copyright Nuvon, Inc. 2007, All Rights Reserved. Introduction The need to improve the quality and accessibility

More information

Microservices. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Microservices. SWE 432, Fall 2017 Design and Implementation of Software for the Web Micros SWE 432, Fall 2017 Design and Implementation of Software for the Web Today How is a being a micro different than simply being ful? What are the advantages of a micro backend architecture over a

More information

Web Services. Lecture I. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics

Web Services. Lecture I. Valdas Rapševičius. Vilnius University Faculty of Mathematics and Informatics Web Services Lecture I Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics 2014.02.28 2014.02.28 Valdas Rapševičius. Java Technologies 1 Outline Introduction to SOA SOA Concepts:

More information

One size does not fit all

One size does not fit all One size does not fit all Stefan Tilkov @stilkov GOTO London 2016 Building blocks lambdas components functions containers VMs services units dynamic libraries objects libraries images classes procedures

More information

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE

ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE ADVANCED SOFTWARE DESIGN LECTURE 4 SOFTWARE ARCHITECTURE Dave Clarke 1 THIS LECTURE At the end of this lecture you will know notations for expressing software architecture the design principles of cohesion

More information

DDD Where s the value and what s in it for me?

DDD Where s the value and what s in it for me? DDD Where s the value and what s in it for me? Dino Esposito JetBrains dino.esposito@jetbrains.com @despos facebook.com/naa4e What does a software architect do? Design software driven by the requirements

More information

Chapter 10 Object-Oriented Design Principles

Chapter 10 Object-Oriented Design Principles Chapter 10 Object-Oriented Design Principles Dr. Supakit Nootyaskool Faculty of Information Technology King Mongkut s Institute of Technology Ladkrabang Outline Object-oriented design: bridging from analysis

More information

Best Practices for Alert Tuning. This white paper will provide best practices for alert tuning to ensure two related outcomes:

Best Practices for Alert Tuning. This white paper will provide best practices for alert tuning to ensure two related outcomes: This white paper will provide best practices for alert tuning to ensure two related outcomes: 1. Monitoring is in place to catch critical conditions and alert the right people 2. Noise is reduced and people

More information

Breaking Apart the Monolith

Breaking Apart the Monolith Breaking Apart the Monolith with Modularity & Microservices Igor Arouca Liferay, Inc Michael C. Han Liferay, Inc June 26 th, 2017 Room #206 What is a Monolith? Self-contained, single process Difficult

More information

How to place an order on CSI s online store

How to place an order on CSI s online store How to place an order on CSI s online store Store website http://store.csionline.org/ 1. Click on account, then log in 2. Create an account or LOGIN using your currently registered email and password.

More information

Red Hat JBoss Fuse Service Works Integration Recipes, Best Practices & Cheat Codes

Red Hat JBoss Fuse Service Works Integration Recipes, Best Practices & Cheat Codes Red Hat JBoss Fuse Service Works Integration Recipes, Best Practices & Cheat Codes Keith Babo SwitchYard Project Lead, Red Hat There is Still Time To Leave We will be talking integration and SOA If your

More information

Flexible EAI-Lösungen mit Glassfish

Flexible EAI-Lösungen mit Glassfish Flexible EAI-Lösungen mit Glassfish Praxisbeispiele und War Stories zu EAI-Pattern Alexander Heusingfeld, @goldstift Martin Huber, @waterback We take care of it - personally! EAI Pattern in 2013? EAI

More information

Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation

Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation Nevin Dong 董乃文 Principle Technical Evangelist Microsoft Cooperation Microservices Autonomous API Gateway Events Service Discovery Circuit Breakers Commands Aggregates Bounded Context Event Bus Domain Events

More information

Frequently Asked Questions ORDERING ON MYHERBALIFE.COM INDIA, January 2013

Frequently Asked Questions ORDERING ON MYHERBALIFE.COM INDIA, January 2013 Click on any of the section headers below to jump to the answers for the questions in that section. If you cannot find the answer to your question, please contact Associate Services at 080-40311444, 10

More information

Training Path FNT ProcessEngine

Training Path FNT ProcessEngine Training Path FNT ProcessEngine // TRAINING PATH: FNT PROCESSENGINE Training Path: FNT ProcessEngine 2 8 // FNT COMMAND BASIC COURSE FNT Command Basic Course The handling of the CI library (component library,

More information

Feature List. MYOB - Magento Connector. Kensium Solutions

Feature List. MYOB - Magento Connector. Kensium Solutions Feature List MYOB - Magento Connector Connector Version: 2.2 Kensium Solutions PHONE 877 KENSIUM (536 7486) FAX 312 242 3029 EMAIL info@kensiumsolutions.com WEBSITE kensiumsolutions.com I NTRO DUC TI O

More information

AWS Lambda: Event-driven Code in the Cloud

AWS Lambda: Event-driven Code in the Cloud AWS Lambda: Event-driven Code in the Cloud Dean Bryen, Solutions Architect AWS Andrew Wheat, Senior Software Engineer - BBC April 15, 2015 London, UK 2015, Amazon Web Services, Inc. or its affiliates.

More information

System and Software Architecture Description (SSAD)

System and Software Architecture Description (SSAD) System and Software Architecture Description (SSAD) FlowerSeeker Team 05 Name Eder Figueroa Sophia Wu Doris Lam Hiram Garcia Roles Primary Role: Project Manager/ Implementer. Secondary Role: Tester. Primary

More information

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani - KTH Royal Institute of Technology SEMINAR 2-29 March 2017 Simone Stefani - sstefani@kth.se WHAT IS THIS SEMINAR ABOUT Branching Merging and rebasing Git team workflows Pull requests and forks WHAT IS THIS

More information

Final Exam CISC 475/675 Fall 2004

Final Exam CISC 475/675 Fall 2004 True or False [2 pts each]: Final Exam CISC 475/675 Fall 2004 1. (True/False) All software development processes contain at least separate planning, testing, and documentation phases. 2. (True/False) The

More information

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views 1 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES Outline for Today 2 Architecture views C&C Views 1 Components and Connectors (C&C) Styles 3 Elements Relations Properties

More information

PRIMARY-BACKUP REPLICATION

PRIMARY-BACKUP REPLICATION PRIMARY-BACKUP REPLICATION Primary Backup George Porter Nov 14, 2018 ATTRIBUTION These slides are released under an Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0) Creative Commons

More information

Essential Software Architecture

Essential Software Architecture Essential Software Architecture Session 4: A Guide to Middleware Architectures and Technologies 1 Introduction Middleware is the plumbing or wiring of IT applications Provides applications with fundamental

More information

Agile Architecture. The Why, the What and the How

Agile Architecture. The Why, the What and the How Agile Architecture The Why, the What and the How Copyright Net Objectives, Inc. All Rights Reserved 2 Product Portfolio Management Product Management Lean for Executives SAFe for Executives Scaled Agile

More information

DS 2009: middleware. David Evans

DS 2009: middleware. David Evans DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between

More information

Schlumberger Supplier Webcast: Ariba Network Transactions for M-I SWACO. September 20, 2017

Schlumberger Supplier Webcast: Ariba Network Transactions for M-I SWACO. September 20, 2017 Schlumberger Supplier Webcast: Ariba Network Transactions for M-I SWACO September 20, 2017 Leaders for Today s Call Nicol Sam North America Procurement and Sourcing Manager Luis Rodriguez Global Business

More information

Amyyon customers can t wait to get their hands on it s new application, developed in Uniface.

Amyyon customers can t wait to get their hands on it s new application, developed in Uniface. customers can t wait to get their hands on it s new application, developed in Uniface. 1 CUSTOMER SECTOR Information Technology COUNTRY Netherlands CHALLENGE Migrate the rich functionality of a client/server

More information

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Chapter 1: Solving Integration Problems Using Patterns 2 Introduction The Need for Integration Integration Challenges

More information

Testing NodeJS, REST APIs and MongoDB with UFT January 19, 2016

Testing NodeJS, REST APIs and MongoDB with UFT January 19, 2016 Testing NodeJS, REST APIs and MongoDB with UFT January 19, 2016 Brought to you by Hosted By Bernard P. Szymczak Ohio Chapter Leader HP Software Education SIG Leader TQA SIG Leader Today s Speakers Ori

More information

Modernize your IT- Landscape

Modernize your IT- Landscape überraschend mehr Möglichkeiten! Modernize your IT- Landscape with API-Driven Architectures Sven Bernhardt, Danilo Schmiedel OPITZ CONSULTING 2017 Agenda 1 2 3 4 API Management Why? Taming the Monolith

More information

See What's Coming in Oracle CPQ Cloud

See What's Coming in Oracle CPQ Cloud See What's Coming in Oracle CPQ Cloud Release 2015 R1 Release Content Document 1 TABLE OF CONTENTS ORACLE CPQ CLOUD... 3 End User Enhancements... 3 Desktop Performance Enhancements... 3 Easy Administration...

More information

Frequently Asked Questions

Frequently Asked Questions Click on any of the frequently asked questions below to display the answer. If you cannot find the answer to your question, please contact Member Services on 08 8154 0200, 9.00 am to 5.00 pm Adelaide time,

More information

What's New in ActiveVOS 9.0

What's New in ActiveVOS 9.0 What's New in ActiveVOS 9.0 2011 Active Endpoints Inc. ActiveVOS is a trademark of Active Endpoints, Inc. All other company and product names are the property of their respective owners. 2011 Content Overview...

More information

Practical Objects: Test Driven Software Development using JUnit

Practical Objects: Test Driven Software Development using JUnit 1999 McBreen.Consulting Practical Objects Test Driven Software Development using JUnit Pete McBreen, McBreen.Consulting petemcbreen@acm.org Test Driven Software Development??? The Unified Process is Use

More information

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme MMC1532BE Using VMware NSX Cloud for Enhanced Networking and Security for AWS Native Workloads Percy Wadia Amol Tipnis VMworld 2017 Content: Not for publication #VMworld #MMC1532BE Disclaimer This presentation

More information

Microservices. treatment. and Modularity. or the difference between. and cure. Milen milendyankov Moscow

Microservices. treatment. and Modularity. or the difference between. and cure. Milen milendyankov Moscow Microservices and Modularity or the difference between treatment and cure Milen Dyankov @ milendyankov 07.04.2017 Moscow ~$ pidof java ~$ pidof java 9927 2151 ~$ ~$ pidof java 9927 2151 ~$ ps aux grep

More information

COPYRIGHTED MATERIAL. Introducing the Project: The SmartCA Application. The Problem

COPYRIGHTED MATERIAL. Introducing the Project: The SmartCA Application. The Problem Introducing the Project: The SmartCA Application The project for this book is based on a real application for a real company. The names of the company and the application have been changed for privacy

More information

Newly-Created, Work-in-Progress (WIP), Approval Cycle, Approved or Copied-from-Previously-Approved, Work-in-Progress (WIP), Approval Cycle, Approved

Newly-Created, Work-in-Progress (WIP), Approval Cycle, Approved or Copied-from-Previously-Approved, Work-in-Progress (WIP), Approval Cycle, Approved A New Approach to Enterprise Data Organization A Cuboid Enterprises are generally overwhelmed with data, making the ability to store, process, analyze, interpret, consume, and act upon that data a primary

More information

THANKS FOR READING. - Marco Behler, Author. Copyright 2015 Marco Behler GmbH. All Rights Reserved.

THANKS FOR READING. - Marco Behler, Author. Copyright 2015 Marco Behler GmbH. All Rights Reserved. 6 THANKS FOR READING Thanks for reading Customer Requirements - Everything Programmers Need To Know Before Writing Code. If you have any suggestions, feedback (good or bad) then please do not hesitate

More information

Web Services. Lecture I. Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics

Web Services. Lecture I. Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics Web Services Lecture I Valdas Rapševičius Vilnius University Faculty of Mathematics and Informatics 2015.02.19 Outline Introduction to SOA SOA Concepts: Services Loose Coupling Infrastructure SOA Layers

More information

DevOps Anti-Patterns. Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! COPYRIGHT 2019 MANICODE SECURITY

DevOps Anti-Patterns. Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! COPYRIGHT 2019 MANICODE SECURITY DevOps Anti-Patterns Have the Ops team deal with it. Time to fire the Ops team! Let s hire a DevOps unit! 31 Anti-Pattern: Throw it Over the Wall Development Operations 32 Anti-Pattern: DevOps Team Silo

More information

Docker CaaS. Sandor Klein VP EMEA

Docker CaaS. Sandor Klein VP EMEA Docker CaaS Sandor Klein VP EMEA The Docker mission Build Ship Run Distributed Applica ons Anywhere Docker Driving the Containerization Movement Build, Ship, Run Distributed Applications Anywhere Docker

More information

Web Applications: A Simple Pluggable Architecture for Business Rich Clients

Web Applications: A Simple Pluggable Architecture for Business Rich Clients Web Applications: A Simple Pluggable Architecture for Business Rich Clients Duncan Mac-Vicar and Jaime Navón Computer Science Department, Pontificia Universidad Católica de Chile {duncan,jnavon}@ing.puc.cl

More information

Middleware Mediated Transactions & Conditional Messaging

Middleware Mediated Transactions & Conditional Messaging Middleware Mediated Transactions & Conditional Messaging Expert Topic Report ECE1770 Spring 2003 Submitted by: Tim Chen John C Wu To: Prof Jacobsen Date: Apr 06, 2003 Electrical and Computer Engineering

More information

Scalable Microservice Based Architecture For Enabling DMTF Profiles

Scalable Microservice Based Architecture For Enabling DMTF Profiles Scalable Microservice Based Architecture For Enabling DMTF Profiles Divyanand Malavalli Client Manageability Group AMD India Pvt 102-103 EPIP, Whitefield, Bangalore, KA 560066 India Divyanand.Malavalli@amd.com

More information

The Modern Developer's Guide To

The Modern Developer's Guide To The Modern Developer's Guide To Contents 1 Microservices and the Salesforce1 Platform 2 Microservice Fundamentals 2.1 Automatic Microservices 2.2 Process-Driven Microservices 2.3 Custom Microservices 2.4

More information

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints Active Endpoints ActiveVOS Platform Architecture ActiveVOS Unique process automation platforms to develop, integrate, and deploy business process applications quickly User Experience Easy to learn, use

More information

Microservices. treatment. and Modularity. or the difference between. and cure. Milen MARCH 17, 2015

Microservices. treatment. and Modularity. or the difference between. and cure. Milen MARCH 17, 2015 Microservices and Modularity or the difference between treatment and cure Milen Dyankov @milendyankov MARCH 17, 2015 ~$ pidof java ~$ pidof java 9927 2151 ~$ ~$ pidof java 9927 2151 ~$ ps aux grep java

More information

Cisco UCS Director and ACI Advanced Deployment Lab

Cisco UCS Director and ACI Advanced Deployment Lab Cisco UCS Director and ACI Advanced Deployment Lab Michael Zimmerman, TME Vishal Mehta, TME Agenda Introduction Cisco UCS Director ACI Integration and Key Concepts Cisco UCS Director Application Container

More information

The future of database technology is in the clouds

The future of database technology is in the clouds Database.com Getting Started Series White Paper The future of database technology is in the clouds WHITE PAPER 0 Contents OVERVIEW... 1 CLOUD COMPUTING ARRIVES... 1 THE FUTURE OF ON-PREMISES DATABASE SYSTEMS:

More information

LAB-03 BPMN Resource Perspective and Events

LAB-03 BPMN Resource Perspective and Events Lab for the course on Process and Service Modeling and Analysis LAB-03 BPMN Resource Perspective and Events Lecturer: Andrea MARRELLA Objectives of this lecture Recap: Pools, Swimlanes and Message Flows

More information

Introduction to RESTful Web Services. Presented by Steve Ives

Introduction to RESTful Web Services. Presented by Steve Ives 1 Introduction to RESTful Web Services Presented by Steve Ives Introduction to RESTful Web Services What are web services? How are web services implemented? Why are web services used? Categories of web

More information

White Paper. Blockchain alternatives: The case for CRAQ

White Paper. Blockchain alternatives: The case for CRAQ White Paper Blockchain alternatives: The case for CRAQ Blockchain technology continues to gain attention as the foundation of the bitcoin economy. Given the rapid gain in popularity of bitcoin, it s no

More information

Business Process Modeling. Version /10/2017

Business Process Modeling. Version /10/2017 Business Process Modeling Version 1.2.1-16/10/2017 Maurizio Morisio, Marco Torchiano, 2012-2017 3 BP Aspects Process flow Process modeling UML Activity Diagrams BPMN Information Conceptual modeling UML

More information

Oracle Fusion Middleware 11g: Build Applications with ADF I

Oracle Fusion Middleware 11g: Build Applications with ADF I Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 4108 4709 Oracle Fusion Middleware 11g: Build Applications with ADF I Duration: 5 Days What you will learn Java EE is a standard, robust,

More information

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE A Seminar report On Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE SUBMITTED TO: SUBMITTED BY: www.studymafia.org www.studymafia.org Acknowledgement

More information

user.book Page 45 Friday, April 8, :05 AM Part 2 BASIC STRUCTURAL MODELING

user.book Page 45 Friday, April 8, :05 AM Part 2 BASIC STRUCTURAL MODELING user.book Page 45 Friday, April 8, 2005 10:05 AM Part 2 BASIC STRUCTURAL MODELING user.book Page 46 Friday, April 8, 2005 10:05 AM user.book Page 47 Friday, April 8, 2005 10:05 AM Chapter 4 CLASSES In

More information

Clean Architecture Patterns, Practices, and #DevSum17

Clean Architecture Patterns, Practices, and #DevSum17 Clean Architecture Patterns, Practices, and Principles @matthewrenze #DevSum17 About Me Independent consultant Education B.S. in Computer Science (ISU) B.A. in Philosophy (ISU) Community Public Speaker

More information

Traditional Security Solutions Have Reached Their Limit

Traditional Security Solutions Have Reached Their Limit Traditional Security Solutions Have Reached Their Limit CHALLENGE #1 They are reactive They force you to deal only with symptoms, rather than root causes. CHALLENGE #2 256 DAYS TO IDENTIFY A BREACH TRADITIONAL

More information

SENG3011 Implementation Workshop. More on REST services

SENG3011 Implementation Workshop. More on REST services SENG3011 Implementation Workshop More on REST services Outline Programmable Web Resource Oriented Architecture REST (video https://www.youtube.com/watch?v=7ycw25phnaa) ROA Properties Service interactions

More information

To Mediate is the Message (a brief history of indirection) Glen Daniels Independent Technologist

To Mediate is the Message (a brief history of indirection) Glen Daniels Independent Technologist To Mediate is the Message (a brief history of indirection) Glen Daniels Independent Technologist glen@thoughtcraft.com Your Presenter What You re Going To Learn Today A Brief History of Indirection and

More information

Death Stars & River Deltas. Toward a Functional Programming Analogy for Microservices

Death Stars & River Deltas. Toward a Functional Programming Analogy for Microservices Death Stars & River Deltas Toward a Functional Programming Analogy for Microservices Hi, I m Bobby I m on the Technology Fellows team at I dislike accidental complexity bobby.calderwood@capitalone.com

More information

Pocket Salon Guide. salonbiz.com

Pocket Salon Guide. salonbiz.com Pocket Salon Guide Pocket Salon is a tool for your guests to carry your salon in their pocket! The app allows them to view, confirm, and manage their visits anytime, anywhere however they want. Logging

More information

MODERN APPLICATION ARCHITECTURE DEMO. Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift

MODERN APPLICATION ARCHITECTURE DEMO. Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift MODERN APPLICATION ARCHITECTURE DEMO Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift COOLSTORE APPLICATION COOLSTORE APPLICATION Online shop for selling products Web-based polyglot

More information

Welcome to Docker Birthday # Docker Birthday events (list available at Docker.Party) RSVPs 600 mentors Big thanks to our global partners:

Welcome to Docker Birthday # Docker Birthday events (list available at Docker.Party) RSVPs 600 mentors Big thanks to our global partners: Docker Birthday #3 Welcome to Docker Birthday #3 2 120 Docker Birthday events (list available at Docker.Party) 7000+ RSVPs 600 mentors Big thanks to our global partners: Travel Planet 24 e-food.gr The

More information

Stream and Batch Processing in the Cloud with Data Microservices. Marius Bogoevici and Mark Fisher, Pivotal

Stream and Batch Processing in the Cloud with Data Microservices. Marius Bogoevici and Mark Fisher, Pivotal Stream and Batch Processing in the Cloud with Data Microservices Marius Bogoevici and Mark Fisher, Pivotal Stream and Batch Processing in the Cloud with Data Microservices Use Cases Predictive maintenance

More information

Architectural patterns and models for implementing CSPA

Architectural patterns and models for implementing CSPA Architectural patterns and models for implementing CSPA Marco Silipo THE CONTRACTOR IS ACTING UNDER A FRAMEWORK CONTRACT CONCLUDED WITH THE COMMISSION Application architecture Outline SOA concepts and

More information

Hi! NET Developer Group Braunschweig!

Hi! NET Developer Group Braunschweig! Hi! NET Developer Group Braunschweig! Über Tobias Dipl. Informatiker (FH) Passionated Software Developer Clean Code Developer.NET Junkie.NET User Group Lead Microsoft PFE Software Development Twitter @Blubern

More information

THE FUTURE OF PERSONALIZATION IS VISUAL WHITE PAPER

THE FUTURE OF PERSONALIZATION IS VISUAL WHITE PAPER WHITE PAPER The Future of Personalization is Visual 1 It s hard to believe that ecommerce has been around for more than two decades, and juggernaut sites like Amazon and ebay were first launched in the

More information

Agenda. Introduction Power Of Visuals Introduction to Visio

Agenda. Introduction Power Of Visuals Introduction to Visio Agenda Introduction Power Of Visuals Introduction to Visio Using PBI and Visio for Monitoring Integrated Monitoring with Visio and Power BI aka Unified Dashboard How to create Unified Dashboards end-to-end

More information

Storefront Ordering System Demonstration Guide. Powered by

Storefront Ordering System Demonstration Guide. Powered by Storefront Ordering System Demonstration Guide Powered by Welcome to CMYK s Storefront Ordering System (SOS) The following pages will guide you through our Demo Site. We will show you many options available

More information

Lecture Notes course Software Development of Web Services

Lecture Notes course Software Development of Web Services Lecture Notes course 02267 Software Development of Web Services Hubert Baumeister huba@dtu.dk Fall 2014 Contents 1 Business Processes 1 2 BPEL 7 3 BPEL and NetBeans 10 4 A BPEL Process as a Web service

More information

Containerized Microservices architecture M.V.L.N.Venugopal

Containerized Microservices architecture M.V.L.N.Venugopal www.ijecs.in International Journal Of Engineering And Computer Science ISSN:2319-7242 Volume 6 Issue 11 November 2017, Page No. 23199-23208 Index Copernicus value (2015): 58.10 DOI: 10.18535/ijecs/v6i11.20

More information

One of the important aspects of microservices is that microservices is an architecture pattern, not a technology. Technology acts as an enabler to

One of the important aspects of microservices is that microservices is an architecture pattern, not a technology. Technology acts as an enabler to 1 One of the important aspects of microservices is that microservices is an architecture pattern, not a technology. Technology acts as an enabler to effectively deliver microservices, but if the design

More information