Domain Driven Design Kevin van der Vlist

Size: px
Start display at page:

Download "Domain Driven Design Kevin van der Vlist"

Transcription

1 Domain Driven Design Kevin van der Vlist

2 Objectives 1. Show the usefullnes of DDD 2/27

3 Objectives 1. Show the usefullnes of DDD 2. Warn you about a two headed monster 2/27

4 Objectives 1. Show the usefullnes of DDD 2. Warn you about a two headed monster 3. Highlight two core concepts of DDD 2/27

5 Problems Threats for developing software systems in real life

6 Implicit knowledge Implicit (business) knowledge is, if codified at all, often added to software as an afterthought: Only shows up as defects (I expected that..., doing so should...) Arises later then needed in the development process, possibly hiding key abstractions Because they are implicit they are hard to validate: what is correct behaviour? 4/27

7 architecture- for- developers/read

8

9 Domain Driven Design What are the key concepts?

10 Key Concepts Domain and model 8/27

11 Key Concepts Domain and model Ubiquitous language 8/27

12 Key Concepts Domain and model Ubiquitous language Bounded context 8/27

13

14 Two-headed monster? Part II The building blocks of a Model-Driven Design Ubiquitous Language Part IV Strategic Design Figure: 10/27

15 Ubiquitous language

16 Ubiquitous language A language structured around the domain model that is used by all stakeholders to connect all the activities directly with software. Grasping customer concepts and detecting inconsistencies Shared language with domain expert Business concepts become first class citizens of the code. Multiple domains get their own language Bridges gap between business, technology and other domains 12/27

17 Ubiquitous language In short: Unambigous Embedded in code and daily vocabulary Used by every single stakeholder 13/27

18 DDD Primitives The building blocks of a Model-Driven Design

19 Primitives Building blocks for DDD Received most attention because they are in the first part of the book Actually just implementation details 15/27

20

21 Primitives Building blocks for DDD Received most attention because they are in the books first part Actually just implementation details Not the essence of DDD 17/27

22 Most important primitive Aggregate Cluster of domain objects Accessible via the root object Provides a transactional boundary 18/27

23 Most important primitive Aggregate Cluster of domain objects Accessible via the root object Provides a transactional boundary Example: Car Window... Engine... Wheel Tire Axel Hubcap 18/27

24 Strategic design Bounded Context

25 Bounded Context To deal with large models, DDD divides them in different, separated Bounded Contexts Their relations are explicit since they can only occur at domain boundaries Integrate bounded context at the borders (using events) In each individual bounded context, focus on that specific domain and use an explicitly separated ubiquitous language. 20/27

26

27 Prevent monopolization! Make sure that each domain gets their own context 22/27

28

29 Bounded Context Localise the effects of various contexts within your domain 24/27

30 Wrapping up

31 Wrapping up 1 Show the usefullnes of DDD Make the domain as explicit as you can 26/27

32 Wrapping up 1 Show the usefullnes of DDD Make the domain as explicit as you can 2 Warn you about a two headed monster Strategic design: the actual essence of DDD 26/27

33 Wrapping up 1 Show the usefullnes of DDD Make the domain as explicit as you can 2 Warn you about a two headed monster Strategic design: the actual essence of DDD 3 Highlight two core concepts of DDD Bounded context and aggregate root: a killer combo 26/27

34 Questions? 27/27

35 Architectural patterns with Domain Driven Design

36 Architectural patterns: Microservices Microservices 29/27

37 Architectural patterns: Microservices Highly visible right now. Accelerated by culture and tooling around DevOps, Agile, Continuous Integration, Continuous Delivery etc. 30/27

38

39 Architectural patterns: Microservices Physically splitting up monoliths Organized around business capabilities (which are bounded contexts) If certain rules are followed this pattern can be highly scalable and available. Development of individual contexts is as loosely coupled as it can be (separate languages, systems,...) 32/27

40 Architectural patterns: Microservices CQRS 33/27

41 Architectural patterns: CQRS Based on Bertrand Meyer s Command and Query Separation (CQS) Methods either retrieve data (side effect free): Person.Move(newAddress) Or change state (obviously has a side effect): Address address = Person.GetAddress() 34/27

42 Architectural patterns: CQRS Command Query Separation (CQS): separate reads and writes in their own actions Command Query Responsibility Segregation (CQRS):... and in their own classes... and in their own modules... and in their own deployables... and in their own runtime process... and in their own servers... and in their own databases 35/27

43

44 Architectural patterns: CQRS What happens? Scaling of reads and writes Different, physically separated representations of the same data Application level sharding (for example: geographic regions of the same applications) 37/27

45 Architectural patterns: CQRS What happens? Scaling of reads and writes Different, physically separated representations of the same data Application level sharding (for example: geographic regions of the same applications) Eventual Consistency 37/27

46 Architectural patterns: Event Sourcing Event Sourcing 38/27

47 Architectural patterns: Event Sourcing What is an event? A description of something that happened at a specific moment in time. Past tense Contains all relevant information about the something It already happened, it cannot be ignored, deleted or mutated. 39/27

48 Architectural patterns: Event Sourcing The trick is: expose the domain as an observable sequence of events and do this in pure business terms MortgageRequestReceived MortgageRequestApproved MortgageClosed MonthlyRepaymentReceived ExtraRepaymentReceived 40/27

49 Architectural patterns: Event Sourcing What is the current due ammount of a loan? Most systems define state as leading: they store a value to represent the answer. Event sourcing makes it a derivative: it is calculated by applying events over time to a shared state. To put it differently: it basically is a foldl of facts: state = ((((a + b) + c) + d) +...) 41/27

50 Architectural patterns: Event Sourcing By deriving state from events you get a few things for free: Following state through time Changing the way you represent data but without losing any Applying temporal queries on your data. 42/27

51 Architectural patterns: Event Sourcing By deriving state from events you get a few things for free: Following state through time Changing the way you represent data but without losing any Applying temporal queries on your data. Canonical example of Greg Young: I as a Doctor want to find patients for a clinical trial. I am looking for patients that were diagnosed with pancreatic cancer within the last 6 months. Within 1 week of diagnosis they were placed on treatment T1 and were given the treatment more than 3 times but less than 7 within a 3 week period. They then failed the treatment with a lab result that looks like R1. They were then placed on a treatment T2 within two weeks and failed with a lab result that looked like R2. 42/27

52 Architectural patterns: Actor model Actor model 43/27

53 Architectural patterns: Actor model See Reactive-Messaging-Patterns-Actor-Model/ dp/ /27

Domain Driven Design IS. An architectural methodology for evolving a software system that closely aligns to business requirements

Domain Driven Design IS. An architectural methodology for evolving a software system that closely aligns to business requirements Domain Driven Design IS An architectural methodology for evolving a software system that closely aligns to business requirements Domain Driven Design IS Domain First Focus on the Object Model Focus on

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

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

DDD at 10. Eric Evans #dddesign

DDD at 10. Eric Evans #dddesign DDD at 10 Eric Evans domainlanguage.com @ericevans0 #dddesign Domain- Driven Design (DDD) Focus on the core domain. Explore models in a crea?ve collabora?on of sobware prac??oners and domain prac??oners.

More information

Principles of Software Construction: Objects, Design, and Concurrency

Principles of Software Construction: Objects, Design, and Concurrency Principles of Software Construction: Objects, Design, and Concurrency Designing (sub-) systems Responsibility assignment Charlie Garrod Michael Hilton School of Computer Science 1 Administrivia Reading

More information

CQRS and Event Sourcing for Java Developers Markus Eisele

CQRS and Event Sourcing for Java Developers Markus Eisele CQRS and Event Sourcing for Java Developers Markus Eisele @myfear Agenda Classical architectures and modernization CRUD vs. CQRS A little example Wrapping it up Classical Architectures Application Server

More information

Patterns and Testing

Patterns and Testing and Lecture # 7 Department of Computer Science and Technology University of Bedfordshire Written by David Goodwin, based on the lectures of Marc Conrad and Dayou Li and on the book Applying UML and (3

More information

Cloud Native Architecture 300. Copyright 2014 Pivotal. All rights reserved.

Cloud Native Architecture 300. Copyright 2014 Pivotal. All rights reserved. Cloud Native Architecture 300 Copyright 2014 Pivotal. All rights reserved. Cloud Native Architecture Why What How Cloud Native Architecture Why What How Cloud Computing New Demands Being Reactive Cloud

More information

Building loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg

Building loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg Building loosely coupled and scalable systems using Event-Driven Architecture Jonas Bonér Patrik Nordwall Andreas Källberg Why is EDA Important for Scalability? What building blocks does EDA consists of?

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

Understanding. Domain-Driven Design

Understanding. Domain-Driven Design Understanding Domain-Driven Design 1 Domain-Driven Design Is about developers and domain experts working together to create software that is both understandable and maintainable. a way to capture and spread

More information

5. Application Layer. Introduction

5. Application Layer. Introduction Book Preview This is a sample chapter of Professional PHP - Building maintainable and secure applications. The book starts with a few theory chapters and after that it is structured as a tutorial. The

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

Towards a Theory of Genericity Based on Government and Binding

Towards a Theory of Genericity Based on Government and Binding Towards a Theory of Based on Government and Binding ER 2006 Tucson Alexander Bienemann, Klaus-Dieter Schewe, Bernhard Thalheim Ariva.de Kiel & Massey University & Kiel University Our main contributions

More information

There is no such thing as a microservice!

There is no such thing as a microservice! There is no such thing as a microservice! Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action chris@chrisrichardson.net http://microservices.io http://eventuate.io

More information

Enn Õunapuu

Enn Õunapuu Asünkroonsed teenused Enn Õunapuu enn.ounapuu@ttu.ee Määrang Asynchronous processing enables methods to return immediately without blocking on the calling thread. Consumers request asynchronous processing

More information

This document is a preview generated by EVS

This document is a preview generated by EVS INTERNATIONAL STANDARD ISO 17090-1 Second edition 2013-05-01 Health informatics Public key infrastructure Part 1: Overview of digital certificate services Informatique de santé Infrastructure de clé publique

More information

MariaDB MaxScale 2.0, basis for a Two-speed IT architecture

MariaDB MaxScale 2.0, basis for a Two-speed IT architecture MariaDB MaxScale 2.0, basis for a Two-speed IT architecture Harry Timm, Business Development Manager harry.timm@mariadb.com Telef: +49-176-2177 0497 MariaDB FASTEST GROWING OPEN SOURCE DATABASE * Innovation

More information

SOME TYPES AND USES OF DATA MODELS

SOME TYPES AND USES OF DATA MODELS 3 SOME TYPES AND USES OF DATA MODELS CHAPTER OUTLINE 3.1 Different Types of Data Models 23 3.1.1 Physical Data Model 24 3.1.2 Logical Data Model 24 3.1.3 Conceptual Data Model 25 3.1.4 Canonical Data Model

More information

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West A DEVOPS STATE OF MIND Chris Van Tuin Chief Technologist, West cvantuin@redhat.com THE NEED FOR SPEED THE ACCELERATION OF APPLICATION DELIVERY FOR THE BUSINESS In short, software is eating the world. -

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

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

CAPABILITY. Managed testing services. Strong test managers experienced in working with business and technology stakeholders

CAPABILITY. Managed testing services. Strong test managers experienced in working with business and technology stakeholders TESTING SERVICES 1 CAPABILITY Innovative use of open source tools helping early and frequent and reducing license costs Test strategy Managed services Test management Functional Strong test managers experienced

More information

iserver Free Archimate ArchiMate 1.0 Template Stencil: Getting from Started Orbus Guide Software Thanks for Downloading the Free ArchiMate Template! Orbus Software have created a set of Visio ArchiMate

More information

Formal Methods in Software Engineering. Lecture 07

Formal Methods in Software Engineering. Lecture 07 Formal Methods in Software Engineering Lecture 07 What is Temporal Logic? Objective: We describe temporal aspects of formal methods to model and specify concurrent systems and verify their correctness

More information

Event-sourced architectures with Luminis Technologies

Event-sourced architectures with Luminis Technologies Event-sourced architectures with Akka @Sander_Mak Luminis Technologies Today's journey Event-sourcing Actors Akka Persistence Design for ES Event-sourcing Is all about getting the facts straight Typical

More information

DDD and BDD. Dan North ThoughtWorks

DDD and BDD. Dan North ThoughtWorks DDD and BDD Dan North ThoughtWorks BDD and DDD Dan North ThoughtWorks What is Domain Driven Design? It s about focusing on the domain and letting it affect the software very much - Jimmy Nilsson (ADDDP)

More information

Chapter 5 System modeling

Chapter 5 System modeling Chapter 5 System Modeling Lecture 1 1 Topics covered Context models Interaction models Structural models Behavioral models Model-driven driven engineering 2 System modeling System modeling is the process

More information

White Paper: The Impact of DevOps on Your ITIL Implementation

White Paper: The Impact of DevOps on Your ITIL Implementation White Paper: The Impact of DevOps on Your ITIL Implementation The question of whether ITIL 1 and DevOps are related is not new. People have many conflicting views on the subject: some argue that ITIL and

More information

Chapter 8 Software Testing. Chapter 8 Software testing

Chapter 8 Software Testing. Chapter 8 Software testing Chapter 8 Software Testing 1 Topics covered Introduction to testing Stages for testing software system are: Development testing Release testing User testing Test-driven development as interleave approach.

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

5 Object Oriented Analysis

5 Object Oriented Analysis 5 Object Oriented Analysis 5.1 What is OOA? 5.2 Analysis Techniques 5.3 Booch's Criteria for Quality Classes 5.4 Project Management and Iterative OOAD 1 5.1 What is OOA? How to get understanding of what

More information

COMP 6471 Software Design Methodologies

COMP 6471 Software Design Methodologies COMP 647 Software Design Methodologies Fall 20 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/comp647-fall20.html Course Introduction Course People Course Components What the course is What the

More information

Improving Web Page Retrieval using Search Context from Clicked Domain Names. Rongmei Li

Improving Web Page Retrieval using Search Context from Clicked Domain Names. Rongmei Li Improving Web Page Retrieval using Search Context from Clicked Domain Names Rongmei Li Outline Motivation Related work Our work Experiments Conclusions 31st August 2009 Rongmei Li 2/ 30 Motivation In the

More information

20. Business Process Analysis (2)

20. Business Process Analysis (2) 20. Business Process Analysis (2) DE + IA (INFO 243) - 31 March 2008 Bob Glushko 1 of 38 3/31/2008 8:00 AM Plan for Today's Class Process Patterns at Different Levels in the "Abstraction Hierarchy" Control

More information

Bringing DevOps to Service Provider Networks & Scoping New Operational Platform Requirements for SDN & NFV

Bringing DevOps to Service Provider Networks & Scoping New Operational Platform Requirements for SDN & NFV White Paper Bringing DevOps to Service Provider Networks & Scoping New Operational Platform Requirements for SDN & NFV Prepared by Caroline Chappell Practice Leader, Cloud & NFV, Heavy Reading www.heavyreading.com

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

Medical Apps for Your ipad: Lexi-Comp Instructions (Fall 2010)

Medical Apps for Your ipad: Lexi-Comp Instructions (Fall 2010) 1 Health Sciences Library (HSL) Medical Apps for Your ipad: Lexi-Comp Instructions (Fall 2010) www.nosm.ca/library askthelibrary@nosm.ca Table of Contents 2 Table of Contents... 2 The Health Sciences Library

More information

Reactive Systems. Dave Farley.

Reactive Systems. Dave Farley. Reactive Systems Dave Farley http://www.davefarley.net @davefarley77 Reactive Systems 21st Century Architecture for 21st Century Problems Dave Farley http://www.davefarley.net @davefarley77 http://www.continuous-delivery.co.uk

More information

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko Containers, Serverless and Functions in a nutshell Eugene Fedorenko About me Eugene Fedorenko Senior Architect Flexagon adfpractice-fedor.blogspot.com @fisbudo Agenda Containers Microservices Docker Kubernetes

More information

Building Reactive Applications with Akka

Building Reactive Applications with Akka Building Reactive Applications with Akka Jonas Bonér Typesafe CTO & co-founder @jboner This is an era of profound change. Implications are massive, change is unavoidable Users! Users are demanding richer

More information

System Name Software Architecture Description

System Name Software Architecture Description System Name Software Architecture Description Author Name Contact Details Version Date template 2011 Eoin Woods & Nick Rozanski 1 / 25 1. Version History Version Date Author Comments 1 July 08 Eoin Woods

More information

GI PageBus AMS Integration Demo

GI PageBus AMS Integration Demo GI PageBus AMS Integration Demo Last updated: 24/05/2012 Table of contents 1 INTRODUCTION...3 2 USING THE DEMO...4 2.1 Available Stock List...4 2.2 Update Panel...5 2.3 Configuration Panel...5 2.4 Monitor

More information

Connecting your Microservices and Cloud Services with Oracle Integration CON7348

Connecting your Microservices and Cloud Services with Oracle Integration CON7348 Connecting your Microservices and Cloud Services with Oracle Integration CON7348 Robert Wunderlich Sr. Principal Product Manager September 19, 2016 Copyright 2016, Oracle and/or its affiliates. All rights

More information

Logging, Monitoring, and Alerting

Logging, Monitoring, and Alerting Logging, Monitoring, and Alerting Logs are a part of daily life in the DevOps world In security, we focus on particular logs to detect security anomalies and for forensic capabilities A basic logging pipeline

More information

SE 1: Software Requirements Specification and Analysis

SE 1: Software Requirements Specification and Analysis SE 1: Software Requirements Specification and Analysis Lecture 9: UML Class (Concept), Object, Communication Diagrams Nancy Day, Davor Svetinović http://www.student.cs.uwaterloo.ca/ cs445/winter2006 uw.cs.cs445

More information

Evaluating Command Query Responsibility Segregation

Evaluating Command Query Responsibility Segregation Master s Thesis Evaluating Command Query Responsibility Segregation Pontus Niltoft & Patrik Pochill Department of Computer Science Faculty of Engineering LTH Lund University, 2013 ISSN 1650-2884 LU-CS-EX:

More information

OpenESSENCE Quick Start Guide

OpenESSENCE Quick Start Guide For the OpenESSENCE demo site Prepared by The Johns Hopkins University Applied Physics Laboratory for the Armed Forces Health Surveillance Center, Division of GEIS Operations January 2013 Table of Contents

More information

Application Architectures, Design Patterns

Application Architectures, Design Patterns Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term

More information

Lightbend Lagom Microservices Just Right. Duncan DeVore Henrik Engström Philly JUG - July 27, 2016

Lightbend Lagom Microservices Just Right. Duncan DeVore Henrik Engström Philly JUG - July 27, 2016 Lightbend Lagom Microservices Just Right Duncan DeVore - @ironfish Henrik Engström - @h3nk3 Philly JUG - July 27, 2016 Lagom - [lah-gome] Adequate, sufficient, just right A great explanation of Lagom:

More information

Building Microservices for Speed and Agility. A practical approach to creating your next-generation application architecture with CA Live API Creator

Building Microservices for Speed and Agility. A practical approach to creating your next-generation application architecture with CA Live API Creator Building Microservices for Speed and Agility A practical approach to creating your next-generation application architecture with CA Live API Creator Speed and agility matter Businesses are being disrupted

More information

COPYRIGHTED MATERIAL CONTENTS PART I: THE PRINCIPLES AND PRACTICES OF DOMAIN DRIVEN DESIGN

COPYRIGHTED MATERIAL CONTENTS PART I: THE PRINCIPLES AND PRACTICES OF DOMAIN DRIVEN DESIGN INTRODUCTION xxxv PART I: THE PRINCIPLES AND PRACTICES OF DOMAIN DRIVEN DESIGN CHAPTER 1: WHAT IS DOMAIN DRIVEN DESIGN? 3 The Challenges of Creating Software for Complex Problem Domains 4 Code Created

More information

WHITEPAPER. Embracing Containers & Microservices for future-proof application modernization

WHITEPAPER. Embracing Containers & Microservices for future-proof application modernization WHITEPAPER Embracing Containers & Microservices for future-proof application modernization The need for application modernization: Legacy applications are typically based on a monolithic design, which

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

AWS Reference Design Document

AWS Reference Design Document AWS Reference Design Document Contents Overview... 1 Amazon Web Services (AWS), Public Cloud and the New Security Challenges... 1 Security at the Speed of DevOps... 2 Securing East-West and North-South

More information

Reliable Asynchronous Communication in Distributed Systems

Reliable Asynchronous Communication in Distributed Systems Master thesis in Secure and Reliable communication at Simula@UiB Reliable Asynchronous Communication in Distributed Systems Author : Espen Johnsen February 15, 2018 Acknowledgement I would like to thank

More information

Network Visibility and Segmentation

Network Visibility and Segmentation Network Visibility and Segmentation 2019 Cisco and/ or its affiliates. All rights reserved. Contents Network Segmentation A Services Approach 3 The Process of Segmentation 3 Segmentation Solution Components

More information

Event-sourced architectures with Luminis Technologies

Event-sourced architectures with Luminis Technologies Event-sourced architectures with Akka @Sander_Mak Luminis Technologies Today's journey Event-sourcing Actors Akka Persistence Design for ES Event-sourcing Is all about getting the facts straight Typical

More information

Modern Stream Processing with Apache Flink

Modern Stream Processing with Apache Flink 1 Modern Stream Processing with Apache Flink Till Rohrmann GOTO Berlin 2017 2 Original creators of Apache Flink da Platform 2 Open Source Apache Flink + da Application Manager 3 What changes faster? Data

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

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

San Francisco Chapter. Cassius Downs Network Edge LLC

San Francisco Chapter. Cassius Downs Network Edge LLC Cassius Downs Network Edge LLC ITIL History ITIL Books V3 Objectives Business Benefits of V3 V3 Changes Training & Certification V2 or V3? Summary 2 Version 1 31 books developed in the 1980 s Focus: Technology

More information

Lesson 19 Software engineering aspects

Lesson 19 Software engineering aspects Lesson 19 Software engineering aspects Service Oriented Architectures Security Module 4 - Architectures Unit 1 Architectural features Ernesto Damiani Università di Milano SOA is HAD HAD is an old concept

More information

Six Sigma in the datacenter drives a zero-defects culture

Six Sigma in the datacenter drives a zero-defects culture Six Sigma in the datacenter drives a zero-defects culture Situation Like many IT organizations, Microsoft IT wants to keep its global infrastructure available at all times. Scope, scale, and an environment

More information

COURSE BROCHURE. Professional Cloud Service Manager Training & Certification

COURSE BROCHURE. Professional Cloud Service Manager Training & Certification COURSE BROCHURE Professional Cloud Service Manager Training & Certification What is Professional Cloud Service Manager? What is Professional Cloud Service Manager In an increasingly interconnected and

More information

InterSystems Cloud Manager & Containers for InterSystems Technologies. Luca Ravazzolo Product Manager

InterSystems Cloud Manager & Containers for InterSystems Technologies. Luca Ravazzolo Product Manager InterSystems Cloud Manager & Containers for InterSystems Technologies Luca Ravazzolo Product Manager InterSystems Cloud Manager 1. What is it? 2. How does it work & How do I use it? 3. Why is it interesting?

More information

MONDAY 20 th MAY PRE-CON WORKSHOP 9 PRE-CON WORKSHOP 6 PRE-CON WORKSHOP 1 PRE-CON WORKSHOP 2 PRE-CON WORKSHOP 5 PRE-CON WORKSHOP 3 PRE-CON WORKSHOP 7

MONDAY 20 th MAY PRE-CON WORKSHOP 9 PRE-CON WORKSHOP 6 PRE-CON WORKSHOP 1 PRE-CON WORKSHOP 2 PRE-CON WORKSHOP 5 PRE-CON WORKSHOP 3 PRE-CON WORKSHOP 7 MONDAY 20 th MAY WORKSHOP 1 WORKSHOP 2 WORKSHOP 3 WORKSHOP 4 WORKSHOP 5 WORKSHOP 6 WORKSHOP 7 WORKSHOP 8 WORKSHOP 9 SOA done right - with examples in & NServiceBus A day of Azure Programming ASP.NET Blazor

More information

Love Containers, Love Devops, Love Openshift, Where's my business case?

Love Containers, Love Devops, Love Openshift, Where's my business case? Love Containers, Love Devops, Love Openshift, Where's my business case? Helping you build your business case for Openshift. Graeme Colman, Keith Lynch, Daniel Oh Red Hat 2nd May 2017 What is this session

More information

Note: The default password for all Professional programs is hhgold (lowercase).

Note: The default password for all Professional programs is hhgold (lowercase). Getting Started To start Professional, double-click the following icon. The first form Professional displays is the Password screen. Enter your password here. See the Change Password section below on how

More information

Executive Summary for deliverable D6.1: Definition of the PFS services (requirements, initial design)

Executive Summary for deliverable D6.1: Definition of the PFS services (requirements, initial design) Electronic Health Records for Clinical Research Executive Summary for deliverable D6.1: Definition of the PFS services (requirements, initial design) Project acronym: EHR4CR Project full title: Electronic

More information

API, DEVOPS & MICROSERVICES

API, DEVOPS & MICROSERVICES API, DEVOPS & MICROSERVICES RAPID. OPEN. SECURE. INNOVATION TOUR 2018 April 26 Singapore 1 2018 Software AG. All rights reserved. For internal use only THE NEW ARCHITECTURAL PARADIGM Microservices Containers

More information

[Docker] Containerization

[Docker] Containerization [Docker] Containerization ABCD-LMA Working Group Will Kinard October 12, 2017 WILL Kinard Infrastructure Architect Software Developer Startup Venture IC Husband Father Clemson University That s me. 2 The

More information

PREPARE FOR TAKE OFF. Accelerate your organisation s journey to the Cloud.

PREPARE FOR TAKE OFF. Accelerate your organisation s journey to the Cloud. PREPARE FOR TAKE OFF Accelerate your organisation s journey to the Cloud. cloud. Contents Introduction Program & Governance BJSS Cloud Readiness Assessment: Intro Platforms & Development BJSS Cloud Readiness

More information

The ICT for Health Perspective

The ICT for Health Perspective INTERNATIONAL ROUND TABLE: Better Brain Health Through Innovative Technology In Europe And North America The ICT for Health Perspective Pēteris Zilgalvis, J.D. Head of Unit, ICT for Health DG Information

More information

Cloud Programming James Larus Microsoft Research. July 13, 2010

Cloud Programming James Larus Microsoft Research. July 13, 2010 Cloud Programming James Larus Microsoft Research July 13, 2010 New Programming Model, New Problems (and some old, unsolved ones) Concurrency Parallelism Message passing Distribution High availability Performance

More information

Lecture 4: Goals and Scenarios. System context. Usage facet. IT system facet. Core activities. Negotiation. Requirements artefacts

Lecture 4: Goals and Scenarios. System context. Usage facet. IT system facet. Core activities. Negotiation. Requirements artefacts Lecture 4: Goals and Scenarios Stakeholders Identifying the problem owners Goals Identifying the success criteria Scenarios Identifying how it works 1 System context Subject facet Usage facet IT system

More information

Move Performance Testing to the Next Level with HP Performance Center September 11, Copyright 2013 Vivit Worldwide

Move Performance Testing to the Next Level with HP Performance Center September 11, Copyright 2013 Vivit Worldwide Move Performance Testing to the Next Level with HP Performance Center September 11, 2013 Copyright 2013 Vivit Worldwide Brought to you by Copyright 2013 Vivit Worldwide Hosted by Megan Shelton Vivit Performance

More information

LOG8430: Architecture logicielle et conception avancée

LOG8430: Architecture logicielle et conception avancée LOG8430: Architecture logicielle et conception avancée Microservices, REST and GraphQL Automne 2017 Fabio Petrillo Chargé de Cours This work is licensed under a Creative 1 Commons Attribution-NonCommercialShareAlike

More information

HIRP OPEN 2018 Compiler & Programming Language. An Efficient Framework for Optimizing Tensors

HIRP OPEN 2018 Compiler & Programming Language. An Efficient Framework for Optimizing Tensors An Efficient Framework for Optimizing Tensors 1 Theme: 2 Subject: Compiler Technology List of Abbreviations NA 3 Background Tensor computation arises frequently in machine learning, graph analytics and

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

High Performance Computing Course Notes Course Administration

High Performance Computing Course Notes Course Administration High Performance Computing Course Notes 2009-2010 2010 Course Administration Contacts details Dr. Ligang He Home page: http://www.dcs.warwick.ac.uk/~liganghe Email: liganghe@dcs.warwick.ac.uk Office hours:

More information

Object-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering

Object-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering Module UFC016QM Object-Oriented Design and Programming O-O Design Unit 2: Objects and Classes Faculty of Computing, Engineering and Mathematical Sciences Schedule Quick recap on Use Case diagrams UWE Flix

More information

Software Service Engineering

Software Service Engineering Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley Unified Modeling Language

More information

The Road to Istio: How IBM, Google and Lyft Joined Forces to Simplify Microservices

The Road to Istio: How IBM, Google and Lyft Joined Forces to Simplify Microservices The Road to Istio: How IBM, Google and Lyft Joined Forces to Simplify Microservices Dr. Tamar Eilam IBM Fellow @ Watson Research Center, NY eilamt@us.ibm.com @tamareilam The Evolution of Principles (2004-2018)

More information

Easy Scalability with Akka. Distribute your domain

Easy Scalability with Akka. Distribute your domain Easy Scalability with Akka Distribute your domain Who? BoldRadius Solutions boldradius.com Typesafe Partner Scala, Akka and Play specialists Ottawa, Saskatoon, San Francisco, Boston, Chicago, Montreal,

More information

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only

Software Testing Strategies. Slides copyright 1996, 2001, 2005, 2009, 2014 by Roger S. Pressman. For non-profit educational use only Chapter 22 Software Testing Strategies Slide Set to accompany Software Engineering: A Practitioner s Approach, 8/e by Roger S. Pressman and Bruce R. Maxim Slides copyright 1996, 2001, 2005, 2009, 2014

More information

Software Tools for Recording Image Inspection Processes

Software Tools for Recording Image Inspection Processes Technical Report: alg04-xx December 12, 2004 Young-Jin Lee, yjlee@ncsa.uiuc.edu Peter Bajcsy, pbajcsy@ncsa.uiuc.edu Automated Learning Group National Center for Supercomputing Applications 605 East Springfield

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

A global open source ecosystem for power systems

A global open source ecosystem for power systems A global open source ecosystem for power systems Fostering the digitalisation of energy The energy sector is meeting the global challenge of climate change by embracing decarbonisation, decentralisation,

More information

Rubicon: Scalable Bounded Verification of Web Applications

Rubicon: Scalable Bounded Verification of Web Applications Joseph P. Near Research Statement My research focuses on developing domain-specific static analyses to improve software security and reliability. In contrast to existing approaches, my techniques leverage

More information

University of Calgary Department of Electrical and Computer Engineering. SENG : Object Oriented Analysis and Design Behrouz Homayoun Far

University of Calgary Department of Electrical and Computer Engineering. SENG : Object Oriented Analysis and Design Behrouz Homayoun Far University of Calgary Department of Electrical and Computer Engineering SENG 609.23: Object Oriented Analysis and Design Behrouz Homayoun Far Evaluation Test () 20:00 20:30 PM Instructions: 1. This booklet

More information

Modules. This chapter lists and describes the major modules or applications that aggregate specific functionality and all together compose the System.

Modules. This chapter lists and describes the major modules or applications that aggregate specific functionality and all together compose the System. Modules COM. Common Functionality EXS. Expert System IMA. Image Archive SCS. Skin Cancer Tools This chapter lists and describes the major modules or applications that aggregate specific functionality and

More information

Technology. Business Objectives & Challenges. Overview. Technical Solution

Technology. Business Objectives & Challenges. Overview. Technical Solution Case Study: Apeiro Technologies testing services team helped client successfully implement test automation and significantly reduced test cycle time for their innovative approach to avail healthcare services.

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

SUSE s vision for agile software development and deployment in the Software Defined Datacenter

SUSE s vision for agile software development and deployment in the Software Defined Datacenter From Git to Cloud SUSE s vision for agile software development and deployment in the Software Defined Datacenter Joachim Werner Senior Product Manager joe@suse.com Peter Chadwick Director Product Management

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 10: Analysis Packages 1 Analysis Workflow: Packages The analysis workflow consists of the following activities: Architectural analysis Analyze a use

More information

Six Weeks to Security Operations The AMP Story. Mike Byrne Cyber Security AMP

Six Weeks to Security Operations The AMP Story. Mike Byrne Cyber Security AMP Six Weeks to Security Operations The AMP Story Mike Byrne Cyber Security AMP 1 Agenda Introductions The AMP Security Operations Story Lessons Learned 2 Speaker Introduction NAME: Mike Byrne TITLE: Consultant

More information

DELIVERING WITH MICROSERVICES HOW TO ITERATE TOWARDS SOPHISTICATION

DELIVERING WITH MICROSERVICES HOW TO ITERATE TOWARDS SOPHISTICATION DELIVERING WITH MICROSERVICES! HOW TO ITERATE TOWARDS SOPHISTICATION 1 FROM THE TRENCHES! PIZZA MOGUL 2 FROM THE TRENCHES PIZZA MOGUL 3 FROM THE TRENCHES NANO SERVICES 4 FROM THE TRENCHES COMPLEXITY 5

More information

The Future of Testing: Continuous Enterprise Testing

The Future of Testing: Continuous Enterprise Testing The Future of Testing: Continuous Enterprise Testing ANZTB Test Conference, Canberra, 1 June 2018 Thomas Hadorn. Dev Ops Years Months Months Weeks Delivery Cycle Time Weeks Days Perceived Disruption Software

More information