CQRS and Event Sourcing for Java Developers Markus Eisele

Size: px
Start display at page:

Download "CQRS and Event Sourcing for Java Developers Markus Eisele"

Transcription

1 CQRS and Event Sourcing for Java Developers Markus Eisele

2 @myfear

3 Agenda Classical architectures and modernization CRUD vs. CQRS A little example Wrapping it up

4 Classical Architectures

5 Application Server EAR - Enterprise Archive Web UI Mobile REST Browser.JAR.JAR.JAR RDBMS.JAR.JAR.JAR.JAR.JAR.JAR.JAR

6 > Traditional application architectures and platforms are obsolete. -- Gartner

7 More users Reactive Manifesto Microservices Akka RoR Spring J2EE

8 New requirements Rather than acting on data at rest, modern software increasingly operates on data in near real-time. Shortened time-frames for putting changes into production New business models evolve from existing ones New questions need to be answered by existing applications Datacenter costs need to go down constantly

9 Which best describes the amount of data that your organization is dealing with, compared to two years ago? 14% 2% We are dealing with MORE data We are dealing with the SAME AMOUNT of data 84% We are dealing with LESS data

10 Application Server Application Server Application Server EAR - Enterprise Archive Web UI Mobile REST Browser.JAR.JAR.JAR RDBMS.JAR.JAR.JAR.JAR.JAR.JAR.JAR

11 Modernization

12 Module.JAR.JAR.JAR RDBMS Module Browser WebUI.JAR.JAR.JAR RDBMS Module.JAR.JAR.JAR.JAR RDBMS

13 Order Module Order DB Browser Tracker UI Tracking Module HistoryDB Routing Module RoutesDB

14 How do Microservices lead to CQRS?

15 Order Module Order DB Cargo Cargo Order Tracker UI Tracking Module HistoryDB Routing Module RoutesDB

16 Order Service createorder() readorder() Order DB Cargo Order OrderID -Name.. putohist() getorder() Tracking Service createohist() readohist() HistoryDB Order History OHistID -Name -OrderID...

17 Microservices decrease consistency All services own all relevant data Updates to other services might be delayed Redundant data is saved in various places Is it consistent? What happens when an order was created but no history entry? Synchronous and blocking? OR asynchronous calls?

18 Event Sourcing and CQRS to the rescue

19 Order Service Order DB Cargo Cargo Order Publish OrderCreated Tracking Service HistoryDB History Entry History Entry History Entry MessageBroker Subscribe OrderCreated

20 Advantages of ES Event-driven architecture and makes it possible to reliably publish events whenever state changes. Mostly avoids the object-relational impedance mismatch. Reliable audit log of the changes made to a business entity Temporal queries that determine the state of an entity at any point in time. Event sourcing-based business logic consists of loosely coupled business entities that exchange events.

21 Challenges of ES It is a different and unfamiliar style of programming and so there is a learning curve. The event store is difficult to query since it requires typical queries to reconstruct the state of the business entities. That is likely to be complex and inefficient. As a result, the application must use Command Query Responsibility Segregation (CQRS) to implement queries. This in turn means that applications must handle eventually consistent data.

22 CQRS Command Query Responsibility Segregation CQRS means separating command responsibilities from query responsibilities.

23 CRUD is OK!

24 For simple domain models! but only Complex models start to show weaknesses DTO vs. VO Read vs. Write performance Optimistic Locking Distributed Caches

25 But what else?

26 Effort to change / enhance CQRS CRUD Complexity of Domain Model

27 Commands and Queries The Command for Writes e.g. CreateCargo The Query for Reads e.g. ListCargo

28 Just separating reads from writes?

29 Commands evolve into Events The Command handle(createcargo command) { } The Event on(cargocreated event) { }

30 Events Occurred in the past Changed the system state (Write operation) CargoCreated, LegAdded, CargoRouted,

31 WAIT! WHAT DID YOU DO TO MY ENTITIES?

32 Persistent Events Book-keeping of changes Contains a full history implicitly Storing events in sequence with a strict global order (time-stamp based) No updates or deletes. Ever! No single current state. The collection of events make up the system state in any point of time.

33 JPA Entities vs. Immutable Facts Capturing Changes instead of updating Objects

34

35 Current State is a second class citizen

36 The read-side Capturing Changes instead of updating Objects

37 Answer all kind of new questions Where was my vessel last week? Who created the shipping request? How much cargo did we ship last year? Which vessels have been re-routed more than twice in under an hour?

38 The read-side CargoRouted(1.2,3) Location cargoid location CargoRouted(1.3,2) CargoRouted(1.4,1) Cargo1 1.2,3 Cargo2 1.3,2 Cargo3 1.4,1 Cargo4 2.2,5

39 Neo4J Cassandra Cassandra

40 Implementation example. A little one.

41 Cargo Tracker

42 Registration Frontend Cassandra Shipping

43

44 Write-Side restcall(method.post, "/api/registration", register() ), restcall(method.get, "/api/registration/all", getallregistrations() ), Read-Side

45 The PersistentEntity CargoEntity.java public class CargoEntity extends PersistentEntity<RegistrationCommand, RegistrationEvent, CargoState> { //... }

46 The write-side RegistrationServiceImpl.java PersistentEntityRef<RegistrationCommand> ref = persistententityregistry.reffor( CargoEntity.class, request.getid());

47 The read-side (preparation) CargoEventProcessor.java preparecreatetables(session).thencompose(a -> preparewritecargo(session).thencompose(b -> preparewriteoffset(session).thencompose(c -> selectoffset(session))));

48 The read-side (1) private CompletionStage<Done> preparecreatetables(cassandrasession session) { return session.executecreatetable( "CREATE TABLE IF NOT EXISTS cargo (" + "cargoid text, name text, description text," + "PRIMARY KEY (cargoid, destination))") ); }

49 The read-side (2) private CompletionStage<Done> preparewritecargo(cassandrasession session) { return session.prepare( "INSERT INTO cargo (cargoid, name, description, " + " owner,destination) VALUES (?,?,?,?,?)").thenapply(ps -> { setwritecargo(ps); return Done.getInstance(); });

50 The read-side (offsets?) private CompletionStage<Optional<UUID>> selectoffset(cassandrasession session) { return session.selectone("select offset FROM blogevent_offset").thenapply( optionalrow -> optionalrow.map(r -> r.getuuid("offset"))); }

51 The read-side (event public EventHandlers defineeventhandlers(eventhandlersbuilder builder) { builder.seteventhandler(cargoregistered.class, this::processcargoregistered); return builder.build(); } RegistrationEvent!

52 The read-side (actual persistence) private CompletionStage<List<BoundStatement>> processcargoregistered(cargoregistered event, UUID offset) { BoundStatement bindwritecargo = writecargo.bind(); bindwritecargo.setstring("cargoid", event.getcargo().getid()); bindwritecargo.setstring("name", event.getcargo().getname()); bindwritecargo.setstring("description"); //... }

53 WHY IS THIS SO.. complicated?

54 BECAUSE.. it s lightning FAST for users!!

55 [info] s.c.r.i.registrationserviceimpl - Cargo ID: [info] s.c.r.i.cargoeventprocessor - Persisted

56 More precisely, because: All data kept in memory! All state changes stored as events Replay events of an PersistentEntity to recreate it Strong consistency for PersistentEntity s and Journal-Entries Eventual Consistency for Read Side

57 BECAUSE.. you can do a lot more a lot easier!!

58 For example: Recreate bugs Migrate systems Introduce new read-sides Process higher volumes Extended caching scenarios

59 BECAUSE.. the examples are based on LAGOM and it DOES A LOT MORE for you!!..oo(you can try with Spring / Hibernate / Java EE your choice)

60 You ve heard this before, but: Lagom is asynchronous by default. Developer productivity Build for microservices Takes you to production.

61 ..oo(you can do this with Spring / Hibernate / Java EE your choice)

62 When not to.. do CQRS?

63 Don t do CQRS when you don t want eventual consistency. have to do deletes. (It gets messy) have no idea about your domain. just have to store and retrieve a value..

64 Links and further reading

65 Project Site: GitHub Repo: Documentation: Cargo Tracker Example:

66 Keep all data in memory! Store all state changes as events Replay all events of an actor to recreate it Strong consistency for Actor (aggregate) and Journal Eventual Consistency for Read Side

67

68 Written for architects and developers that must quickly gain a fundamental understanding of microservice-based architectures, this free O Reilly report explores the journey from SOA to microservices, discusses approaches to dismantling your monolith, and reviews the key tenets of a Reactive microservice: Isolate all the Things Act Autonomously Do One Thing, and Do It Well Own Your State, Exclusively Embrace Asynchronous Message-Passing Stay Mobile, but Addressable Collaborate as Systems to Solve Problems

69 The detailed example in this report is based on Lagom, a new framework that helps you follow the requirements for building distributed, reactive systems. Get an overview of the Reactive Programming model and basic requirements for developing reactive microservices Learn how to create base services, expose endpoints, and then connect them with a simple, web-based user interface Understand how to deal with persistence, state, and clients Use integration technologies to start a successful migration away from legacy systems

70 Understand the challenges of starting a greenfield development vs tearing apart an existing brownfield application into services Examine your business domain to see if microservices would be a good fit Explore best practices for automation, high availability, data separation, and performance Align your development teams around business capabilities and responsibilities Inspect design patterns such as aggregator, proxy, pipeline, or shared resources to model service interactions

71

72

Reactive Integrations - Caveats and bumps in the road explained

Reactive Integrations - Caveats and bumps in the road explained Reactive Integrations - Caveats and bumps in the road explained @myfear Why is everybody talking about cloud and microservices and what the **** is streaming? Biggest Problems in Software Development High

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

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

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

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

Event Sourcing. Intro & Challenges

Event Sourcing. Intro & Challenges Event Sourcing Intro & Challenges Michael Plöd innoq Principal Consultant @bitboss Most current systems only store the current state Classical Architecture IncidentRestController IncidentBusinessService

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

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

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

Putting together the platform: Riak, Redis, Solr and Spark. Bryan Hunt

Putting together the platform: Riak, Redis, Solr and Spark. Bryan Hunt Putting together the platform: Riak, Redis, Solr and Spark Bryan Hunt 1 $ whoami Bryan Hunt Client Services Engineer @binarytemple 2 Minimum viable product - the ideologically correct doctrine 1. Start

More information

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Using the SDACK Architecture to Build a Big Data Product Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Outline A Threat Analytic Big Data product The SDACK Architecture Akka Streams and data

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

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

Programming Without a Call Stack: Event-driven Architectures

Programming Without a Call Stack: Event-driven Architectures Programming Without a Call Stack: Event-driven Architectures Gregor Hohpe Google www.eaipatterns.com Gregor Hohpe Programming Without a Call Stack: Event-driven Architectures Slide 1 About Me Distributed

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

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

Fast Track to EJB 3.0 and the JPA Using JBoss

Fast Track to EJB 3.0 and the JPA Using JBoss Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity

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

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

Microservices Lessons Learned From a Startup Perspective

Microservices Lessons Learned From a Startup Perspective Microservices Lessons Learned From a Startup Perspective Susanne Kaiser @suksr CTO at Just Software @JustSocialApps Each journey is different People try to copy Netflix, but they can only copy what they

More information

Full Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker

Full Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker Full Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker 02.03.2017 About Myself DR. ALEXANDER FRIED Chief Technology Officer 2 OUR SOLUTIONS DIGITAL ASSET MANAGEMENT Organize & Share Any File, Any Format,

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

Migrating traditional Java EE applications to mobile

Migrating traditional Java EE applications to mobile Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16

More information

Creating Ultra-fast Realtime Apps and Microservices with Java. Markus Kett, CEO Jetstream Technologies

Creating Ultra-fast Realtime Apps and Microservices with Java. Markus Kett, CEO Jetstream Technologies Creating Ultra-fast Realtime Apps and Microservices with Java Markus Kett, CEO Jetstream Technologies #NoDBMSApplications #JetstreamDB About me: Markus Kett Living in Regensburg, Germany Working with Java

More information

Transformation-free Data Pipelines by combining the Power of Apache Kafka and the Flexibility of the ESB's

Transformation-free Data Pipelines by combining the Power of Apache Kafka and the Flexibility of the ESB's Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's Transformation-free Data Pipelines by combining the Power of Apache Kafka and the Flexibility of the ESB's Ricardo Ferreira

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

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications By, Janakiram MSV Executive Summary Application development has gone through a fundamental shift in the recent past.

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

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

"Charting the Course... Mastering EJB 3.0 Applications. Course Summary

Charting the Course... Mastering EJB 3.0 Applications. Course Summary Course Summary Description Our training is technology centric. Although a specific application server product will be used throughout the course, the comprehensive labs and lessons geared towards teaching

More information

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems Distributed Architectures & Microservices CS 475, Spring 2018 Concurrent & Distributed Systems GFS Architecture GFS Summary Limitations: Master is a huge bottleneck Recovery of master is slow Lots of success

More information

Services Oriented Architecture and the Enterprise Services Bus

Services Oriented Architecture and the Enterprise Services Bus IBM Software Group Services Oriented Architecture and the Enterprise Services Bus The next step to an on demand business Geoff Hambrick Distinguished Engineer, ISSW Enablement Team ghambric@us.ibm.com

More information

Object Persistence Design Guidelines

Object Persistence Design Guidelines Object Persistence Design Guidelines Motivation Design guideline supports architects and developers in design and development issues of binding object-oriented applications to data sources The major task

More information

Agenda Birds Do It: Migrating Forms to Java EE Web A Case Study

Agenda Birds Do It: Migrating Forms to Java EE Web A Case Study Agenda Birds Do It: Migrating Forms to Java EE Web A Case Study The migration requirement Technology decision process Challenges, successes, lessons learned Government Technology Conference (GTC) East

More information

Microservices with Kafka Ecosystem. Guido Schmutz

Microservices with Kafka Ecosystem. Guido Schmutz Microservices with Kafka Ecosystem Guido Schmutz @gschmutz doag2017 Guido Schmutz Working at Trivadis for more than 20 years Oracle ACE Director for Fusion Middleware and SOA Consultant, Trainer Software

More information

Project Horizon Technical Overview. Bob Rullo GM; Presentation Architecture

Project Horizon Technical Overview. Bob Rullo GM; Presentation Architecture Project Horizon Technical Overview Bob Rullo GM; Presentation Architecture robert.rullo@sungardhe.com Agenda Banner Evolution Overview Project Horizon Overview Project Horizon Architecture Review Preparing

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

Database Architectures

Database Architectures Database Architectures CPS352: Database Systems Simon Miner Gordon College Last Revised: 4/15/15 Agenda Check-in Parallelism and Distributed Databases Technology Research Project Introduction to NoSQL

More information

Reactive Microservices Architecture on AWS

Reactive Microservices Architecture on AWS Reactive Microservices Architecture on AWS Sascha Möllering Solutions Architect, @sascha242, Amazon Web Services Germany GmbH Why are we here today? https://secure.flickr.com/photos/mgifford/4525333972

More information

Resin Technical Update Summer 2018

Resin Technical Update Summer 2018 Resin Technical Update Summer 2018 Caucho Engineering We have solved our nationwide scalability problems using Resin clustering and achieved major performance benefits to our high traffic sites. -Jung

More information

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0 Cloud-Native Applications Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0 Cloud-Native Characteristics Lean Form a hypothesis, build just enough to validate or disprove it. Learn

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

Microservices at Netflix Scale. First Principles, Tradeoffs, Lessons Learned Ruslan

Microservices at Netflix Scale. First Principles, Tradeoffs, Lessons Learned Ruslan Microservices at Netflix Scale First Principles, Tradeoffs, Lessons Learned Ruslan Meshenberg @rusmeshenberg Microservices: all benefits, no costs? Netflix is the world s leading Internet television network

More information

BARCELONA. 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

BARCELONA. 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved BARCELONA 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved From Monolithic to Microservices Evolving Architecture Patterns in the Cloud Daniele Stroppa, AWS Solutions Architect Teo

More information

Domain Driven Design Kevin van der Vlist

Domain Driven Design Kevin van der Vlist Domain Driven Design Kevin van der Vlist kvdvlist@sogyo.nl Objectives 1. Show the usefullnes of DDD 2/27 Objectives 1. Show the usefullnes of DDD 2. Warn you about a two headed monster 2/27 Objectives

More information

Science-as-a-Service

Science-as-a-Service Science-as-a-Service The iplant Foundation Rion Dooley Edwin Skidmore Dan Stanzione Steve Terry Matthew Vaughn Outline Why, why, why! When duct tape isn t enough Building an API for the web Core services

More information

EMBEDDED MESSAGING USING ACTIVEMQ

EMBEDDED MESSAGING USING ACTIVEMQ Mark Richards EMBEDDED MESSAGING USING ACTIVEMQ Embedded messaging is useful when you need localized messaging within your application and don t need (or want) an external message broker. It s a good technique

More information

Microservices a security nightmare? GOTO Nights Zürich - March 3, 2016 Maximilian Container Solutions Switzerland

Microservices a security nightmare? GOTO Nights Zürich - March 3, 2016 Maximilian Container Solutions Switzerland Microservices a security nightmare? GOTO Nights Zürich - March 3, 2016 Maximilian Schöfmann @schoefmann Container Solutions Switzerland Microservices (2016) small, hence many services talking over

More information

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin, To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry Tony Erwin, aerwin@us.ibm.com Agenda Origins of the Bluemix UI Demons of the Monolith Slaying Demons with

More information

Full Stack Web Developer Nanodegree Syllabus

Full Stack Web Developer Nanodegree Syllabus Full Stack Web Developer Nanodegree Syllabus Build Complex Web Applications Before You Start Thank you for your interest in the Full Stack Web Developer Nanodegree! In order to succeed in this program,

More information

Clean Architecture Patterns, Practices, and #sddconf

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

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

Project Horizon Technical Overview. Steven Forman Principal Technical Consultant

Project Horizon Technical Overview. Steven Forman Principal Technical Consultant Project Horizon Technical Overview Steven Forman Principal Technical Consultant Agenda Banner Evolution Overview Project Horizon Overview Project Horizon Architecture Review Preparing for Project Horizon

More information

"Web Age Speaks!" Webinar Series

Web Age Speaks! Webinar Series "Web Age Speaks!" Webinar Series Java EE Patterns Revisited WebAgeSolutions.com 1 Introduction Bibhas Bhattacharya CTO bibhas@webagesolutions.com Web Age Solutions Premier provider of Java & Java EE training

More information

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)

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

Open Cloud Engine - An Open Source Cloud Native Transformer

Open Cloud Engine - An Open Source Cloud Native Transformer DDD Spring Cloud DevOps Open Cloud Engine - An Open Source Cloud Native Transformer AS-IS: Pain-points in service operation Requests for Service upgrade is too frequently, it brings over-time working everyday.

More information

Software LEIC/LETI. Lecture 20

Software LEIC/LETI. Lecture 20 Software Engineering @ LEIC/LETI Lecture 20 Last Lecture Profiler and Debugger tools Offline concurrency patterns Presentation logic Services Domain logic Remote access Data access Remote Service Database

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: 1,995 + VAT Course Description: This course provides a comprehensive introduction to JPA (the Java Persistence API),

More information

Microservices What, Why? ( 마이크로서비스를꼭써야하나 )

Microservices What, Why? ( 마이크로서비스를꼭써야하나 ) Microservices What, Why? ( 마이크로서비스를꼭써야하나 ) Not only a browser anymore (Retire the Three-Tier Application Architecture to Move Toward Digital Business) MASA (Mesh App & Service Architecture) TOP 10 Technology

More information

EF6 - Version: 1. Entity Framework 6

EF6 - Version: 1. Entity Framework 6 EF6 - Version: 1 Entity Framework 6 Entity Framework 6 EF6 - Version: 1 4 days Course Description: Entity Framework is the new ORM and data access technology introduced by Microsoft. Entity framework provides

More information

Making Sense of your Data BUILDING A CUSTOM MONGODB DATASOURCE FOR GRAFANA WITH VERTX

Making Sense of your Data BUILDING A CUSTOM MONGODB DATASOURCE FOR GRAFANA WITH VERTX 1 Making Sense of your Data BUILDING A CUSTOM MONGODB DATASOURCE FOR GRAFANA WITH VERTX About me 2 IT Consultant & Java Specialist at DevCon5 (CH) Focal Areas Tool-assisted quality assurance Performance

More information

A Journey to DynamoDB

A Journey to DynamoDB A Journey to DynamoDB and maybe away from DynamoDB Adam Dockter VP of Engineering ServiceTarget Who are we? Small Company 4 Developers AWS Infrastructure NO QA!! About our product Self service web application

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options:

More information

Building flexible and scalable applications

Building flexible and scalable applications Building flexible and scalable applications Using CQRS and Axon Framework Allard Buijze abu@trifork.com @allardbz Allard Buijze CTO of Trifork Amsterdam ~ 15 years of web development experience Strong

More information

Oracle Applications in a Changing Business World. Legacy Oracle Applications Won't Be Around Forever. Will You?

Oracle Applications in a Changing Business World. Legacy Oracle Applications Won't Be Around Forever. Will You? Oracle Applications in a Changing Business World Legacy Oracle Applications Won't Be Around Forever. Will You? Ross Smith Chief Architect July 7, 2017 2 Oracle Applications in a Changing Business World

More information

Presenter Info: Bob Calco

Presenter Info: Bob Calco Session Abstract In this talk, Mr. Calco will discuss the use of HL7 FHIR as a data exchange format to (i) facilitate federated data domain reconciliation, (ii) support usable, discreet interfaces at the

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

Java Enterprise Edition

Java Enterprise Edition Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data

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

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

SUMMARY LAYERED ARCHITECTURE

SUMMARY LAYERED ARCHITECTURE SUMMARY Introduction Layered architecture Event driven architecture Microservices architecture SOFTWARE ARCHITECTURE PATTERNS INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica

More information

Automated Testing of Tableau Dashboards

Automated Testing of Tableau Dashboards Kinesis Technical Whitepapers April 2018 Kinesis CI Automated Testing of Tableau Dashboards Abstract Companies make business critical decisions every day, based on data from their business intelligence

More information

OpenECOMP SDC Developer Guide

OpenECOMP SDC Developer Guide OpenECOMP SDC Developer Guide Copyright 2017 AT&T Intellectual Property. All rights reserved. Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation

More information

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration contents foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration xix xxxii PART 1 GETTING STARTED WITH ORM...1 1 2 Understanding object/relational

More information

Making Sense of your Data

Making Sense of your Data Making Sense of your Data Building A Custom DataSource for Grafana with Vert.x Gerald Mücke DevCon5 GmbH @gmuecke About me 3 IT Consultant & Java Specialist at DevCon5 (CH) Focal Areas Tool-assisted quality

More information

Full Stack Developer with Java

Full Stack Developer with Java Full Stack Developer with Java Full Stack Developer (Java) MVC, Databases and ORMs, API Backend Frontend Fundamentals - HTML, CSS, JS Unit Testing Advanced Full Stack Developer (Java) UML, Distributed

More information

Securing Modern API and Microservice Based Applications by Design A closer look at security concerns for modern applications Farshad Abasi / Forward

Securing Modern API and Microservice Based Applications by Design A closer look at security concerns for modern applications Farshad Abasi / Forward Securing Modern API and Microservice Based Applications by Design A closer look at security concerns for modern applications Farshad Abasi / Forward Security / 2018-11-22 About Me Farshad Abasi Based in:

More information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently. Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 5 days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options.

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

Architectural Styles I

Architectural Styles I Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts

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

MAKING THE BUSINESS CASE MOVING ORACLE FORMS TO THE WEB

MAKING THE BUSINESS CASE MOVING ORACLE FORMS TO THE WEB MAKING THE BUSINESS CASE MOVING ORACLE FORMS TO THE WEB About Us Agenda Strategic Direction of Oracle Forms Applications Migration Options Migrating to 10g and 11g Migrating to J2EE and ADF Migrating to

More information

TopLink Grid: Scaling JPA applications with Coherence

TopLink Grid: Scaling JPA applications with Coherence TopLink Grid: Scaling JPA applications with Coherence Shaun Smith Principal Product Manager shaun.smith@oracle.com Java Persistence: The Problem Space Customer id: int name: String

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: CDN$3275 *Prices are subject to GST/HST Course Description: This course provides a comprehensive introduction to JPA

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.

More information

Managing Data in an Object World. Mike Fechner, Director, Consultingwerk Ltd.

Managing Data in an Object World. Mike Fechner, Director, Consultingwerk Ltd. Managing Data in an Object World Mike Fechner, Director, Consultingwerk Ltd. mike.fechner@consultingwerk.de Consultingwerk Ltd. Independent IT consulting organization Focusing on OpenEdge and.net Located

More information

Relational databases

Relational databases COSC 6397 Big Data Analytics NoSQL databases Edgar Gabriel Spring 2017 Relational databases Long lasting industry standard to store data persistently Key points concurrency control, transactions, standard

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

TECHNICAL WHITE PAPER. Akka A to Z. An Architect s Guide To Designing, Building, And Running Reactive Systems

TECHNICAL WHITE PAPER. Akka A to Z. An Architect s Guide To Designing, Building, And Running Reactive Systems TECHNICAL WHITE PAPER Akka A to Z An Architect s Guide To Designing, Building, And Running Reactive Systems By Hugh McKee & Oliver White Lightbend, Inc. Table Of Contents Executive Summary... 3 A Little

More information

Never again offline?!? Experiences on the outstanding role of data in a large-scale mobile app ecosystem

Never again offline?!? Experiences on the outstanding role of data in a large-scale mobile app ecosystem Never again offline?!? Experiences on the outstanding role of data in a large-scale mobile app ecosystem Dr. Matthias Naab, Fraunhofer IESE 1 Dr. Ralf Carbon, John Deere ETIC Susanne Braun, Fraunhofer

More information

POJOs to the rescue. Easier and faster development with POJOs and lightweight frameworks

POJOs to the rescue. Easier and faster development with POJOs and lightweight frameworks POJOs to the rescue Easier and faster development with POJOs and lightweight frameworks by Chris Richardson cer@acm.org http://chris-richardson.blog-city.com 1 Who am I? Twenty years of software development

More information

Remote Health Service System based on Struts2 and Hibernate

Remote Health Service System based on Struts2 and Hibernate St. Cloud State University therepository at St. Cloud State Culminating Projects in Computer Science and Information Technology Department of Computer Science and Information Technology 5-2017 Remote Health

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

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

Java EE Architecture, Part Three. Java EE architecture, part three 1(57)

Java EE Architecture, Part Three. Java EE architecture, part three 1(57) Java EE Architecture, Part Three Java EE architecture, part three 1(57) Content Requirements on the Integration layer The Database Access Object, DAO Pattern Frameworks for the Integration layer Java EE

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

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution: Whitepaper The Challenge: Enterprise JavaBeans (EJB) represents a new standard in enterprise computing: a component-based architecture for developing and deploying distributed object-oriented applications

More information

Developer Experience

Developer Experience Developer Experience Max Yekaterynenko Director of Community Engineering @maksek_ua Discover Install Design Develop Integrate Deploy Engage Maintain Monetize Discover Install Design Develop Integrate Deploy

More information