Microservices and actors are a very trendy subject. You hear about them everywhere and it's the brand new thing. Except it's not.
These things have been coming back and forth in the industry for years, in different shapes and names. But they always rely on the same concepts of loose coupling and high cohesion, that we have been talking about for more than 30 years.
In this talk, we will see how events help you decouple your applications in smaller independent components, which do one thing and do it well. We will see that buying an expensive ESB from a major software vendor is not the solution to make your code more robust. We will see how a practical approach to messages and events can easily transform your application into something easier to understand, maintain and evolve.
We will also see how events can ease the pain when it comes to defining a ubiquitous language, used by both business and technical people, that allows better understanding of your problem domain and can even sometimes help you discover business insights and generate new business opportunities.
Automatiser le setup de vos projets avec Eclipse OomphJérémie Bresson
Slides de ma présentation au Voxxed Day Luxembourg 2016.
http://cfp-voxxed-lux.yajug.org/2016/talk/SHW-4354/Automatiser_le_setup_de_vos_projets_avec_Eclipse_Oomph
Le setup d'un projet dans un IDE va bien au-delà d'un simple git-checkout et/ou d'un import dans le workspace. Plus les outils et les projets sont complexes, plus les taches à effectuer sont nombreuses et prennent du temps. Pourtant lorsqu'il s'agit de contribuer un simple patch, il faut que la barrière à l'entrée soit la plus basse possible.
Eclipse Oomph est une réponse à ce problème. Il s'agit d'un outil qui en un clic va préparer un IDE Eclipse pour travailler sur un projet. L'idée est d'aller de l'installation de la bonne version d'Eclipse et de ses plugins jusqu'à la configuration du workspace : clone du repository git et checkout de la bonne branche, matérialisation des projets, configurations diverses, connexion aux outils connexes au développement (server de build, issue tracker…). L'objectif est d'obtenir un Eclipse «prêt pour coder» pour le contributeur/collaborateur.
Oomph apporte également une solution élégante pour:
1. synchroniser ses réglages personnels entre différentes installations d'Eclipse
2. éviter de retélécharger tout le temps les mêmes plugins
Oomph est un projet Eclipse, développé en open-source et distribué depuis la version Mars d'Eclipse.
Discover eZ Publish: why you have to know this productBertrand Dunogier
A presentation of eZ Publish from an evolution perspective: what our product went through, and how our long experience of content management has allowed us to be very ambitious in our rewrite of it.
This document provides an overview of microservices in the enterprise. It discusses factors driving the rise of microservices like SOA fatigue and the need for faster innovation. Examples of microservice architectures from companies like Netflix, Twitter and Gilt are presented. Key capabilities for building enterprise-ready microservices are described, including service discovery, description, deployment isolation using containers, data/verb partitioning, lightweight middleware, API gateways and observability. Open source technologies that support implementing these capabilities are also outlined. The document concludes that microservices are the future of distributed systems and enterprises should implement solutions from first principles using inspiration from internet companies.
Mobile IoT Middleware Interoperability & QoS Analysis - Eclipse IoT Day Paris...Nikolaos Georgantas
Research results by the Inria Paris MiMove Team on Mobile IoT Middleware Interoperability & QoS Analysis. Presentation at Eclipse IoT Day Paris Saclay 2019
Video for this session: http://www.youtube.com/watch?v=jdiu_dH3z5k
Code for this session: https://github.com/xamarin/Seminars/tree/master/2012-12-13-MVVMCross/
An introduction to one approach for using dependency injection, unit testing and MVVM in cross-platform mobile C# development with Stuart Lodge
The document provides an introduction to MvvmCross, which is a framework that implements the Model-View-ViewModel (MVVM) pattern for .NET platforms. It discusses MVVM theory, .NET implementations of MVVM patterns like INotifyPropertyChanged, and how MvvmCross enables cross-platform development through features like portable class libraries, plugins, and interface-driven development. It also provides examples of code evolution using MvvmCross and showcases real-world applications that have been developed with it.
Docker, Containers and the Future of Application DeliveryDocker, Inc.
Docker containers provide a standardized way to package applications and their dependencies to run consistently regardless of infrastructure. This solves the "N x N" compatibility problem caused by multiple applications, stacks, and environments. Containers allow applications to be built once and run anywhere while isolating components. Docker eliminates inconsistencies between development, testing and production environments and improves automation of processes like continuous integration and delivery.
Automatiser le setup de vos projets avec Eclipse OomphJérémie Bresson
Slides de ma présentation au Voxxed Day Luxembourg 2016.
http://cfp-voxxed-lux.yajug.org/2016/talk/SHW-4354/Automatiser_le_setup_de_vos_projets_avec_Eclipse_Oomph
Le setup d'un projet dans un IDE va bien au-delà d'un simple git-checkout et/ou d'un import dans le workspace. Plus les outils et les projets sont complexes, plus les taches à effectuer sont nombreuses et prennent du temps. Pourtant lorsqu'il s'agit de contribuer un simple patch, il faut que la barrière à l'entrée soit la plus basse possible.
Eclipse Oomph est une réponse à ce problème. Il s'agit d'un outil qui en un clic va préparer un IDE Eclipse pour travailler sur un projet. L'idée est d'aller de l'installation de la bonne version d'Eclipse et de ses plugins jusqu'à la configuration du workspace : clone du repository git et checkout de la bonne branche, matérialisation des projets, configurations diverses, connexion aux outils connexes au développement (server de build, issue tracker…). L'objectif est d'obtenir un Eclipse «prêt pour coder» pour le contributeur/collaborateur.
Oomph apporte également une solution élégante pour:
1. synchroniser ses réglages personnels entre différentes installations d'Eclipse
2. éviter de retélécharger tout le temps les mêmes plugins
Oomph est un projet Eclipse, développé en open-source et distribué depuis la version Mars d'Eclipse.
Discover eZ Publish: why you have to know this productBertrand Dunogier
A presentation of eZ Publish from an evolution perspective: what our product went through, and how our long experience of content management has allowed us to be very ambitious in our rewrite of it.
This document provides an overview of microservices in the enterprise. It discusses factors driving the rise of microservices like SOA fatigue and the need for faster innovation. Examples of microservice architectures from companies like Netflix, Twitter and Gilt are presented. Key capabilities for building enterprise-ready microservices are described, including service discovery, description, deployment isolation using containers, data/verb partitioning, lightweight middleware, API gateways and observability. Open source technologies that support implementing these capabilities are also outlined. The document concludes that microservices are the future of distributed systems and enterprises should implement solutions from first principles using inspiration from internet companies.
Mobile IoT Middleware Interoperability & QoS Analysis - Eclipse IoT Day Paris...Nikolaos Georgantas
Research results by the Inria Paris MiMove Team on Mobile IoT Middleware Interoperability & QoS Analysis. Presentation at Eclipse IoT Day Paris Saclay 2019
Video for this session: http://www.youtube.com/watch?v=jdiu_dH3z5k
Code for this session: https://github.com/xamarin/Seminars/tree/master/2012-12-13-MVVMCross/
An introduction to one approach for using dependency injection, unit testing and MVVM in cross-platform mobile C# development with Stuart Lodge
The document provides an introduction to MvvmCross, which is a framework that implements the Model-View-ViewModel (MVVM) pattern for .NET platforms. It discusses MVVM theory, .NET implementations of MVVM patterns like INotifyPropertyChanged, and how MvvmCross enables cross-platform development through features like portable class libraries, plugins, and interface-driven development. It also provides examples of code evolution using MvvmCross and showcases real-world applications that have been developed with it.
Docker, Containers and the Future of Application DeliveryDocker, Inc.
Docker containers provide a standardized way to package applications and their dependencies to run consistently regardless of infrastructure. This solves the "N x N" compatibility problem caused by multiple applications, stacks, and environments. Containers allow applications to be built once and run anywhere while isolating components. Docker eliminates inconsistencies between development, testing and production environments and improves automation of processes like continuous integration and delivery.
Introduction to dockers and kubernetes. Learn how this helps you to build scalable and portable applications with cloud. It introduces the basic concepts of dockers, its differences with virtualization, then explain the need for orchestration and do some hands-on experiments with dockers
Docker, Containers and the Future of Application DeliveryDocker, Inc.
This document discusses Docker and containers as a solution to challenges in application delivery caused by the multiplicity of hardware environments and software stacks. It describes how Docker solves this "N x N" compatibility problem by allowing applications and their dependencies to be packaged into standardized, self-sufficient containers that can run on any infrastructure. The document outlines why Docker is gaining excitement from developers and operations teams by enabling "build once, run anywhere", continuous integration/deployment, and consistent application environments. It also summarizes some alternative approaches and real-world use cases being developed by the Docker community.
Configuration management tools like Chef, Puppet, and Ansible aim to reduce inconsistencies by imposing and managing consistent configurations across environments. However, they do not fully address issues related to dependencies, isolation, and portability. Docker containers build on these tools by adding standard interfaces and a lightweight virtualization layer that encapsulates code and dependencies, allowing applications and their environments to be packaged together and run consistently on any infrastructure while also providing isolation.
Docker, Containers, and the Future of Application Delivery document discusses:
- The challenges of running applications across different environments due to variations in stacks and hardware ("N x N" compatibility problem).
- How Docker addresses this by allowing applications and their dependencies to be packaged into standardized software containers that can run consistently across any infrastructure similar to how shipping containers standardized cargo transportation.
- The benefits of Docker for developers in building applications once and running them anywhere without dependency or compatibility issues, and for operations in simplifying configuration management and automation.
Clouds & Containers: Hit the High Points and Give it to Me Straight, What's t...Mark Heckler
As developers, we hear a non-stop stream of technical-but-marketing messages for containers, orchestration tools, and cloud services. There is extensive overlap in these areas with regard to both means and ends, and it's time to clear the fog and get to the bottom of things. This talk gives a quick overview from a hardcore developer's perspective of the following topics:
* How can I use containers to develop better software?
* What are orchestration tools? Do I need to consider/use them?
* How do cloud/PaaS options compare? What are the tradeoffs?
* What is the difference?
* Why should I care? (Or should I?)
In this session, the presenter discusses several of these technologies, compares them, and deploys real applications to them LIVE to demonstrate subtle differences and tradeoffs each choice imposes upon developers, for better or worse.
Clouds & Containers: Hit the High Points and Give it to Me Straight, What's t...Mark Heckler
As developers, we hear a non-stop stream of technical-but-marketing messages for containers, orchestration tools, and cloud services. There is extensive overlap in these areas with regard to both means and ends, and it's time to clear the fog and get to the bottom of things. The talk that accompanies these slides gives a quick overview from a hardcore developer's perspective of the following topics:
* How can I use containers to develop better software?
* What are orchestration tools? Do I need to consider/use them?
* How do cloud/PaaS options compare? What are the tradeoffs?
* What is the difference?
* Why should I care? (Or should I?)
In the accompanying session, the presenter discusses several of these technologies, compares them, and deploys real applications to them LIVE to demonstrate subtle differences and tradeoffs each choice imposes upon developers, for better or worse.
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware
Presentation title: Model and pilot all cloud layers with OCCIware, from IoT to Big Data
Abstract: Who uses multi cloud today ? Everybody. Alas, this leads to a lot of "technical glue". Enter OCCIware's Studio and Runtime : manage all layers and domains of the Cloud (XaaS) in a uniform, standard, extensible way - the Cloud consumer platform.presentation.
This talk presents how the OCCIware Studio - currently being contributed to the Eclipse Foundation by Inria and Obeo - takes advantage of Eclipse Modeling and SIrius in order to support a metamodel for the generic Open Cloud Computing Interface (OCCI) REST API and build a "studio factory", while providing feedback and lessons learned on various other Eclipse components.
It concludes on a live demonstration of using it to model and pilot an IoT (nodeMCU/ESP8266), Linked & Big Data (JSON-LD, Spark), containerized Cloud solution to let electricity consumption be monitored across territories by all actors - individuals, utility providers, up to regional public bodies.
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Marc Dutoo
This document introduces OCCIware, which allows modeling and piloting all cloud layers from IoT to Big Data using the OCCI standard. It provides an overview of OCCIware, demonstrates its use in a smart city use case monitoring energy consumption from IoT sensors to linked open data analytics, and shows a quick demo of Docker Studio and a custom linked data extension. It concludes by discussing next steps for OCCIware and Eclipse.org.
This document provides an overview of Patrick Chanezon's background and interests related to Docker and containerization. Some key points:
- Patrick is Chief Developer Advocate at Docker, where he focuses on developer relations and platforms.
- His interests include agile development, DevOps, microservices, and using containers and Docker to improve developer productivity and application portability.
- He discusses how containers have evolved from early uses in mainframes and virtualization to today's platforms like Docker that make containers a natural fit for modern application architectures like microservices and serverless computing.
How we dockerized a startup? #meetup #docker Jonathan Martin
Docker in production, for real!
The Yuzu startup, helped by Vixns, chose to have a docker infrastructure with Mesos/Marathon/Consul. From the development environment to our prod monitoring, we share our mistakes, successes, workflows and tools.
1. The document discusses Bridget Kromhout's tweets from a conference about microservices and distributed systems.
2. It covers topics such as Kubernetes, containers, the CAP theorem, Helm, Draft, Brigade, and challenges of building distributed systems and managing people.
3. Many tweets discuss tools for developing, deploying and managing containerized applications on Kubernetes clusters, while others focus on broader challenges of distributed systems and socio-technical aspects of organizations.
Being able to analyze data in real-time will be a very hot topic for sure in near future. Not only for IoT-related tasks but as a general approach to user-to-machine or machine-to-machine interaction. From product recommendations to fraud detection alarms, a lot of stuff would be perfect if it could happen in real time. Now, with Azure Event Hubs and Stream Analytics, it’s possible. In this session, Davide will demonstrate how to use Event Hubs to quickly ingest new real-time data and Stream Analytics to query on-the-fly data, in order to do a real-time analysis of what’s happening right now.
Connecting the Dots: How Blockchains Can Interoperate with PolkadotPureStake
To kick off the first Polkadot meetup in Boston, PureStake CEO Derek Yoo makes the case for a multi-chain future, and interoperability between these networks. Learn how Polkadot's unique architecture, aided by significantly eased development time through the Substrate framework, is poised to unite decentralized networks around the world and potentially change the face of blockchain as we know it.
For more information, visit www.purestake.com or email us: hello@purestake.com
Demystifying Containerization Principles for Data ScientistsDr Ganesh Iyer
Demystifying Containerization Principles for Data Scientists - An introductory tutorial on how Dockers can be used as a development environment for data science projects
CICD Pipelines for Microservices: Lessons from the TrenchesCodefresh
You have finally split your big monolith into microservices built on top of Kubernetes! Now what? How do you validate a more complex application? And how do you make it scale? In this live talk, we look at two case studies, Expedia’s journey to microservices, and Codefresh. If you try to treat microservices like monoliths you’ll end up with thousands of broken pipelines that are impossible to maintain. Learn from the mistakes of the past and let us show you how we fought our way to something much better! This live talk has everything, tech tips, best practices, and yes, even the fabled business value that our bosses all seem to care so much about!
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware
The OCCIware project aims at managing in a unified manner all layers and domains of the Cloud (XaaS), by building on the Open Cloud Computing (OCCI) standard. OCCIware Metamodel formally specifies the main OCCI concepts. Today a first EMF metamodel is defined that adds to OCCI new concepts such as Extension, Configuration, and EDataType, addressing some limitations of OCCI.
This session highlights OCCIware platform two main components:
– The OCCIware Studio Factory, allowing to produce visually customizable diagram editors for any Cloud configuration business domain modeled in OCCI using the OCCI Extension Studio, such as the flagship Docker Studio ;
– The OCCIware Runtime, based on OW2 erocci project, including the tools for deployment, supervision and administration, and allowing to federate multiple XaaS Cloud runtimes, such as the Roboconf PaaS server and the ActiveEon Cloud Automation multi-IaaS connector.
This talk includes a demonstration of the Docker connector and of how to use the OCCIware Cloud Designer to configure a real life Cloud application (a Java API server on top of a MongoDB cluster)’s business, platform and infrastructure layers seamlessly on both VirtualBox and OpenStack infrastructure.
OCCIware: Extensible and Standard-based XaaS Platform To Manage Everything in...OW2
The OCCIware project aims at managing in a unified manner all layers and domains of the Cloud (XaaS), by building on the Open Cloud Computing (OCCI) standard. OCCIware Metamodel formally specifies the main OCCI concepts. Today a first EMF metamodel is defined that adds to OCCI new concepts such as Extension, Configuration, and EDataType, addressing some limitations of OCCI.
This session highlights OCCIware platform two main components:
– The OCCIware Studio Factory, allowing to produce visually customizable diagram editors for any Cloud configuration business domain modeled in OCCI using the OCCI Extension Studio, such as the flagship Docker Studio ;
– The OCCIware Runtime, based on OW2 erocci project, including the tools for deployment, supervision and administration, and allowing to federate multiple XaaS Cloud runtimes, such as the Roboconf PaaS server and the ActiveEon Cloud Automation multi-IaaS connector.
This talk includes a demonstration of the Docker connector and of how to use the OCCIware Cloud Designer to configure a real life Cloud application (a Java API server on top of a MongoDB cluster)’s business, platform and infrastructure layers seamlessly on both VirtualBox and OpenStack infrastructure.
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsOnePlan Solutions
Clinical operations professionals encounter unique challenges. Balancing regulatory requirements, tight timelines, and the need for cross-functional collaboration can create significant internal pressures. Our upcoming webinar will introduce key strategies and tools to streamline and enhance clinical development processes, helping you overcome these challenges.
More Related Content
Similar to Events everywhere - breaking monoliths and silos
Introduction to dockers and kubernetes. Learn how this helps you to build scalable and portable applications with cloud. It introduces the basic concepts of dockers, its differences with virtualization, then explain the need for orchestration and do some hands-on experiments with dockers
Docker, Containers and the Future of Application DeliveryDocker, Inc.
This document discusses Docker and containers as a solution to challenges in application delivery caused by the multiplicity of hardware environments and software stacks. It describes how Docker solves this "N x N" compatibility problem by allowing applications and their dependencies to be packaged into standardized, self-sufficient containers that can run on any infrastructure. The document outlines why Docker is gaining excitement from developers and operations teams by enabling "build once, run anywhere", continuous integration/deployment, and consistent application environments. It also summarizes some alternative approaches and real-world use cases being developed by the Docker community.
Configuration management tools like Chef, Puppet, and Ansible aim to reduce inconsistencies by imposing and managing consistent configurations across environments. However, they do not fully address issues related to dependencies, isolation, and portability. Docker containers build on these tools by adding standard interfaces and a lightweight virtualization layer that encapsulates code and dependencies, allowing applications and their environments to be packaged together and run consistently on any infrastructure while also providing isolation.
Docker, Containers, and the Future of Application Delivery document discusses:
- The challenges of running applications across different environments due to variations in stacks and hardware ("N x N" compatibility problem).
- How Docker addresses this by allowing applications and their dependencies to be packaged into standardized software containers that can run consistently across any infrastructure similar to how shipping containers standardized cargo transportation.
- The benefits of Docker for developers in building applications once and running them anywhere without dependency or compatibility issues, and for operations in simplifying configuration management and automation.
Clouds & Containers: Hit the High Points and Give it to Me Straight, What's t...Mark Heckler
As developers, we hear a non-stop stream of technical-but-marketing messages for containers, orchestration tools, and cloud services. There is extensive overlap in these areas with regard to both means and ends, and it's time to clear the fog and get to the bottom of things. This talk gives a quick overview from a hardcore developer's perspective of the following topics:
* How can I use containers to develop better software?
* What are orchestration tools? Do I need to consider/use them?
* How do cloud/PaaS options compare? What are the tradeoffs?
* What is the difference?
* Why should I care? (Or should I?)
In this session, the presenter discusses several of these technologies, compares them, and deploys real applications to them LIVE to demonstrate subtle differences and tradeoffs each choice imposes upon developers, for better or worse.
Clouds & Containers: Hit the High Points and Give it to Me Straight, What's t...Mark Heckler
As developers, we hear a non-stop stream of technical-but-marketing messages for containers, orchestration tools, and cloud services. There is extensive overlap in these areas with regard to both means and ends, and it's time to clear the fog and get to the bottom of things. The talk that accompanies these slides gives a quick overview from a hardcore developer's perspective of the following topics:
* How can I use containers to develop better software?
* What are orchestration tools? Do I need to consider/use them?
* How do cloud/PaaS options compare? What are the tradeoffs?
* What is the difference?
* Why should I care? (Or should I?)
In the accompanying session, the presenter discusses several of these technologies, compares them, and deploys real applications to them LIVE to demonstrate subtle differences and tradeoffs each choice imposes upon developers, for better or worse.
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware
Presentation title: Model and pilot all cloud layers with OCCIware, from IoT to Big Data
Abstract: Who uses multi cloud today ? Everybody. Alas, this leads to a lot of "technical glue". Enter OCCIware's Studio and Runtime : manage all layers and domains of the Cloud (XaaS) in a uniform, standard, extensible way - the Cloud consumer platform.presentation.
This talk presents how the OCCIware Studio - currently being contributed to the Eclipse Foundation by Inria and Obeo - takes advantage of Eclipse Modeling and SIrius in order to support a metamodel for the generic Open Cloud Computing Interface (OCCI) REST API and build a "studio factory", while providing feedback and lessons learned on various other Eclipse components.
It concludes on a live demonstration of using it to model and pilot an IoT (nodeMCU/ESP8266), Linked & Big Data (JSON-LD, Spark), containerized Cloud solution to let electricity consumption be monitored across territories by all actors - individuals, utility providers, up to regional public bodies.
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Marc Dutoo
This document introduces OCCIware, which allows modeling and piloting all cloud layers from IoT to Big Data using the OCCI standard. It provides an overview of OCCIware, demonstrates its use in a smart city use case monitoring energy consumption from IoT sensors to linked open data analytics, and shows a quick demo of Docker Studio and a custom linked data extension. It concludes by discussing next steps for OCCIware and Eclipse.org.
This document provides an overview of Patrick Chanezon's background and interests related to Docker and containerization. Some key points:
- Patrick is Chief Developer Advocate at Docker, where he focuses on developer relations and platforms.
- His interests include agile development, DevOps, microservices, and using containers and Docker to improve developer productivity and application portability.
- He discusses how containers have evolved from early uses in mainframes and virtualization to today's platforms like Docker that make containers a natural fit for modern application architectures like microservices and serverless computing.
How we dockerized a startup? #meetup #docker Jonathan Martin
Docker in production, for real!
The Yuzu startup, helped by Vixns, chose to have a docker infrastructure with Mesos/Marathon/Consul. From the development environment to our prod monitoring, we share our mistakes, successes, workflows and tools.
1. The document discusses Bridget Kromhout's tweets from a conference about microservices and distributed systems.
2. It covers topics such as Kubernetes, containers, the CAP theorem, Helm, Draft, Brigade, and challenges of building distributed systems and managing people.
3. Many tweets discuss tools for developing, deploying and managing containerized applications on Kubernetes clusters, while others focus on broader challenges of distributed systems and socio-technical aspects of organizations.
Being able to analyze data in real-time will be a very hot topic for sure in near future. Not only for IoT-related tasks but as a general approach to user-to-machine or machine-to-machine interaction. From product recommendations to fraud detection alarms, a lot of stuff would be perfect if it could happen in real time. Now, with Azure Event Hubs and Stream Analytics, it’s possible. In this session, Davide will demonstrate how to use Event Hubs to quickly ingest new real-time data and Stream Analytics to query on-the-fly data, in order to do a real-time analysis of what’s happening right now.
Connecting the Dots: How Blockchains Can Interoperate with PolkadotPureStake
To kick off the first Polkadot meetup in Boston, PureStake CEO Derek Yoo makes the case for a multi-chain future, and interoperability between these networks. Learn how Polkadot's unique architecture, aided by significantly eased development time through the Substrate framework, is poised to unite decentralized networks around the world and potentially change the face of blockchain as we know it.
For more information, visit www.purestake.com or email us: hello@purestake.com
Demystifying Containerization Principles for Data ScientistsDr Ganesh Iyer
Demystifying Containerization Principles for Data Scientists - An introductory tutorial on how Dockers can be used as a development environment for data science projects
CICD Pipelines for Microservices: Lessons from the TrenchesCodefresh
You have finally split your big monolith into microservices built on top of Kubernetes! Now what? How do you validate a more complex application? And how do you make it scale? In this live talk, we look at two case studies, Expedia’s journey to microservices, and Codefresh. If you try to treat microservices like monoliths you’ll end up with thousands of broken pipelines that are impossible to maintain. Learn from the mistakes of the past and let us show you how we fought our way to something much better! This live talk has everything, tech tips, best practices, and yes, even the fabled business value that our bosses all seem to care so much about!
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware
The OCCIware project aims at managing in a unified manner all layers and domains of the Cloud (XaaS), by building on the Open Cloud Computing (OCCI) standard. OCCIware Metamodel formally specifies the main OCCI concepts. Today a first EMF metamodel is defined that adds to OCCI new concepts such as Extension, Configuration, and EDataType, addressing some limitations of OCCI.
This session highlights OCCIware platform two main components:
– The OCCIware Studio Factory, allowing to produce visually customizable diagram editors for any Cloud configuration business domain modeled in OCCI using the OCCI Extension Studio, such as the flagship Docker Studio ;
– The OCCIware Runtime, based on OW2 erocci project, including the tools for deployment, supervision and administration, and allowing to federate multiple XaaS Cloud runtimes, such as the Roboconf PaaS server and the ActiveEon Cloud Automation multi-IaaS connector.
This talk includes a demonstration of the Docker connector and of how to use the OCCIware Cloud Designer to configure a real life Cloud application (a Java API server on top of a MongoDB cluster)’s business, platform and infrastructure layers seamlessly on both VirtualBox and OpenStack infrastructure.
OCCIware: Extensible and Standard-based XaaS Platform To Manage Everything in...OW2
The OCCIware project aims at managing in a unified manner all layers and domains of the Cloud (XaaS), by building on the Open Cloud Computing (OCCI) standard. OCCIware Metamodel formally specifies the main OCCI concepts. Today a first EMF metamodel is defined that adds to OCCI new concepts such as Extension, Configuration, and EDataType, addressing some limitations of OCCI.
This session highlights OCCIware platform two main components:
– The OCCIware Studio Factory, allowing to produce visually customizable diagram editors for any Cloud configuration business domain modeled in OCCI using the OCCI Extension Studio, such as the flagship Docker Studio ;
– The OCCIware Runtime, based on OW2 erocci project, including the tools for deployment, supervision and administration, and allowing to federate multiple XaaS Cloud runtimes, such as the Roboconf PaaS server and the ActiveEon Cloud Automation multi-IaaS connector.
This talk includes a demonstration of the Docker connector and of how to use the OCCIware Cloud Designer to configure a real life Cloud application (a Java API server on top of a MongoDB cluster)’s business, platform and infrastructure layers seamlessly on both VirtualBox and OpenStack infrastructure.
Similar to Events everywhere - breaking monoliths and silos (20)
Ensuring Efficiency and Speed with Practical Solutions for Clinical OperationsOnePlan Solutions
Clinical operations professionals encounter unique challenges. Balancing regulatory requirements, tight timelines, and the need for cross-functional collaboration can create significant internal pressures. Our upcoming webinar will introduce key strategies and tools to streamline and enhance clinical development processes, helping you overcome these challenges.
How GenAI Can Improve Supplier Performance Management.pdfZycus
Data Collection and Analysis with GenAI enables organizations to gather, analyze, and visualize vast amounts of supplier data, identifying key performance indicators and trends. Predictive analytics forecast future supplier performance, mitigating risks and seizing opportunities. Supplier segmentation allows for tailored management strategies, optimizing resource allocation. Automated scorecards and reporting provide real-time insights, enhancing transparency and tracking progress. Collaboration is fostered through GenAI-powered platforms, driving continuous improvement. NLP analyzes unstructured feedback, uncovering deeper insights into supplier relationships. Simulation and scenario planning tools anticipate supply chain disruptions, supporting informed decision-making. Integration with existing systems enhances data accuracy and consistency. McKinsey estimates GenAI could deliver $2.6 trillion to $4.4 trillion in economic benefits annually across industries, revolutionizing procurement processes and delivering significant ROI.
Photoshop Tutorial for Beginners (2024 Edition)alowpalsadig
Photoshop Tutorial for Beginners (2024 Edition)
Explore the evolution of programming and software development and design in 2024. Discover emerging trends shaping the future of coding in our insightful analysis."
Here's an overview:Introduction: The Evolution of Programming and Software DevelopmentThe Rise of Artificial Intelligence and Machine Learning in CodingAdopting Low-Code and No-Code PlatformsQuantum Computing: Entering the Software Development MainstreamIntegration of DevOps with Machine Learning: MLOpsAdvancements in Cybersecurity PracticesThe Growth of Edge ComputingEmerging Programming Languages and FrameworksSoftware Development Ethics and AI RegulationSustainability in Software EngineeringThe Future Workforce: Remote and Distributed TeamsConclusion: Adapting to the Changing Software Development LandscapeIntroduction: The Evolution of Programming and Software Development
Photoshop Tutorial for Beginners (2024 Edition)Explore the evolution of programming and software development and design in 2024. Discover emerging trends shaping the future of coding in our insightful analysis."Here's an overview:Introduction: The Evolution of Programming and Software DevelopmentThe Rise of Artificial Intelligence and Machine Learning in CodingAdopting Low-Code and No-Code PlatformsQuantum Computing: Entering the Software Development MainstreamIntegration of DevOps with Machine Learning: MLOpsAdvancements in Cybersecurity PracticesThe Growth of Edge ComputingEmerging Programming Languages and FrameworksSoftware Development Ethics and AI RegulationSustainability in Software EngineeringThe Future Workforce: Remote and Distributed TeamsConclusion: Adapting to the Changing Software Development LandscapeIntroduction: The Evolution of Programming and Software Development
The importance of developing and designing programming in 2024
Programming design and development represents a vital step in keeping pace with technological advancements and meeting ever-changing market needs. This course is intended for anyone who wants to understand the fundamental importance of software development and design, whether you are a beginner or a professional seeking to update your knowledge.
Course objectives:
1. **Learn about the basics of software development:
- Understanding software development processes and tools.
- Identify the role of programmers and designers in software projects.
2. Understanding the software design process:
- Learn about the principles of good software design.
- Discussing common design patterns such as Object-Oriented Design.
3. The importance of user experience (UX) in modern software:
- Explore how user experience can improve software acceptance and usability.
- Tools and techniques to analyze and improve user experience.
4. Increase efficiency and productivity through modern development tools:
- Access to the latest programming tools and languages used in the industry.
- Study live examples of applications
Stork Product Overview: An AI-Powered Autonomous Delivery FleetVince Scalabrino
Imagine a world where instead of blue and brown trucks dropping parcels on our porches, a buzzing drove of drones delivered our goods. Now imagine those drones are controlled by 3 purpose-built AI designed to ensure all packages were delivered as quickly and as economically as possible That's what Stork is all about.
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISTier1 app
Are you ready to unlock the secrets hidden within Java thread dumps? Join us for a hands-on session where we'll delve into effective troubleshooting patterns to swiftly identify the root causes of production problems. Discover the right tools, techniques, and best practices while exploring *real-world case studies of major outages* in Fortune 500 enterprises. Engage in interactive lab exercises where you'll have the opportunity to troubleshoot thread dumps and uncover performance issues firsthand. Join us and become a master of Java thread dump analysis!
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...kalichargn70th171
Visual testing plays a vital role in ensuring that software products meet the aesthetic requirements specified by clients in functional and non-functional specifications. In today's highly competitive digital landscape, users expect a seamless and visually appealing online experience. Visual testing, also known as automated UI testing or visual regression testing, verifies the accuracy of the visual elements that users interact with.
Building API data products on top of your real-time data infrastructureconfluent
This talk and live demonstration will examine how Confluent and Gravitee.io integrate to unlock value from streaming data through API products.
You will learn how data owners and API providers can document, secure data products on top of Confluent brokers, including schema validation, topic routing and message filtering.
You will also see how data and API consumers can discover and subscribe to products in a developer portal, as well as how they can integrate with Confluent topics through protocols like REST, Websockets, Server-sent Events and Webhooks.
Whether you want to monetize your real-time data, enable new integrations with partners, or provide self-service access to topics through various protocols, this webinar is for you!
Superpower Your Apache Kafka Applications Development with Complementary Open...Paul Brebner
Kafka Summit talk (Bangalore, India, May 2, 2024, https://events.bizzabo.com/573863/agenda/session/1300469 )
Many Apache Kafka use cases take advantage of Kafka’s ability to integrate multiple heterogeneous systems for stream processing and real-time machine learning scenarios. But Kafka also exists in a rich ecosystem of related but complementary stream processing technologies and tools, particularly from the open-source community. In this talk, we’ll take you on a tour of a selection of complementary tools that can make Kafka even more powerful. We’ll focus on tools for stream processing and querying, streaming machine learning, stream visibility and observation, stream meta-data, stream visualisation, stream development including testing and the use of Generative AI and LLMs, and stream performance and scalability. By the end you will have a good idea of the types of Kafka “superhero” tools that exist, which are my favourites (and what superpowers they have), and how they combine to save your Kafka applications development universe from swamploads of data stagnation monsters!
Streamlining End-to-End Testing Automation with Azure DevOps Build & Release Pipelines
Automating end-to-end (e2e) test for Android and iOS native apps, and web apps, within Azure build and release pipelines, poses several challenges. This session dives into the key challenges and the repeatable solutions implemented across multiple teams at a leading Indian telecom disruptor, renowned for its affordable 4G/5G services, digital platforms, and broadband connectivity.
Challenge #1. Ensuring Test Environment Consistency: Establishing a standardized test execution environment across hundreds of Azure DevOps agents is crucial for achieving dependable testing results. This uniformity must seamlessly span from Build pipelines to various stages of the Release pipeline.
Challenge #2. Coordinated Test Execution Across Environments: Executing distinct subsets of tests using the same automation framework across diverse environments, such as the build pipeline and specific stages of the Release Pipeline, demands flexible and cohesive approaches.
Challenge #3. Testing on Linux-based Azure DevOps Agents: Conducting tests, particularly for web and native apps, on Azure DevOps Linux agents lacking browser or device connectivity presents specific challenges in attaining thorough testing coverage.
This session delves into how these challenges were addressed through:
1. Automate the setup of essential dependencies to ensure a consistent testing environment.
2. Create standardized templates for executing API tests, API workflow tests, and end-to-end tests in the Build pipeline, streamlining the testing process.
3. Implement task groups in Release pipeline stages to facilitate the execution of tests, ensuring consistency and efficiency across deployment phases.
4. Deploy browsers within Docker containers for web application testing, enhancing portability and scalability of testing environments.
5. Leverage diverse device farms dedicated to Android, iOS, and browser testing to cover a wide range of platforms and devices.
6. Integrate AI technology, such as Applitools Visual AI and Ultrafast Grid, to automate test execution and validation, improving accuracy and efficiency.
7. Utilize AI/ML-powered central test automation reporting server through platforms like reportportal.io, providing consolidated and real-time insights into test performance and issues.
These solutions not only facilitate comprehensive testing across platforms but also promote the principles of shift-left testing, enabling early feedback, implementing quality gates, and ensuring repeatability. By adopting these techniques, teams can effectively automate and execute tests, accelerating software delivery while upholding high-quality standards across Android, iOS, and web applications.
The Role of DevOps in Digital Transformation.pdfmohitd6
DevOps plays a crucial role in driving digital transformation by fostering a collaborative culture between development and operations teams. This approach enhances the speed and efficiency of software delivery, ensuring quicker deployment of new features and updates. DevOps practices like continuous integration and continuous delivery (CI/CD) streamline workflows, reduce manual errors, and increase the overall reliability of software systems. By leveraging automation and monitoring tools, organizations can improve system stability, enhance customer experiences, and maintain a competitive edge. Ultimately, DevOps is pivotal in enabling businesses to innovate rapidly, respond to market changes, and achieve their digital transformation goals.
🏎️Tech Transformation: DevOps Insights from the Experts 👩💻campbellclarkson
Connect with fellow Trailblazers, learn from industry experts Glenda Thomson (Salesforce, Principal Technical Architect) and Will Dinn (Judo Bank, Salesforce Development Lead), and discover how to harness DevOps tools with Salesforce.
Strengthening Web Development with CommandBox 6: Seamless Transition and Scal...Ortus Solutions, Corp
Join us for a session exploring CommandBox 6’s smooth website transition and efficient deployment. CommandBox revolutionizes web development, simplifying tasks across Linux, Windows, and Mac platforms. Gain insights and practical tips to enhance your development workflow.
Come join us for an enlightening session where we delve into the smooth transition of current websites and the efficient deployment of new ones using CommandBox 6. CommandBox has revolutionized web development, consistently introducing user-friendly enhancements that catalyze progress in the field. During this presentation, we’ll explore CommandBox’s rich history and showcase its unmatched capabilities within the realm of ColdFusion, covering both major variations.
The journey of CommandBox has been one of continuous innovation, constantly pushing boundaries to simplify and optimize development processes. Regardless of whether you’re working on Linux, Windows, or Mac platforms, CommandBox empowers developers to streamline tasks with unparalleled ease.
In our session, we’ll illustrate the simple process of transitioning existing websites to CommandBox 6, highlighting its intuitive features and seamless integration. Moreover, we’ll unveil the potential for effortlessly deploying multiple websites, demonstrating CommandBox’s versatility and adaptability.
Join us on this journey through the evolution of web development, guided by the transformative power of CommandBox 6. Gain invaluable insights, practical tips, and firsthand experiences that will enhance your development workflow and embolden your projects.
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceICS
This webinar explores the “secure-by-design” approach to medical device software development. During this important session, we will outline which security measures should be considered for compliance, identify technical solutions available on various hardware platforms, summarize hardware protection methods you should consider when building in security and review security software such as Trusted Execution Environments for secure storage of keys and data, and Intrusion Detection Protection Systems to monitor for threats.
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid
IBM watsonx Code Assistant for Z, our latest Generative AI-assisted mainframe application modernization solution. Mainframe (IBM Z) application modernization is a topic that every mainframe client is addressing to various degrees today, driven largely from digital transformation. With generative AI comes the opportunity to reimagine the mainframe application modernization experience. Infusing generative AI will enable speed and trust, help de-risk, and lower total costs associated with heavy-lifting application modernization initiatives. This document provides an overview of the IBM watsonx Code Assistant for Z which uses the power of generative AI to make it easier for developers to selectively modernize COBOL business services while maintaining mainframe qualities of service.
What is Continuous Testing in DevOps - A Definitive Guide.pdfkalichargn70th171
Once an overlooked aspect, continuous testing has become indispensable for enterprises striving to accelerate application delivery and reduce business impacts. According to a Statista report, 31.3% of global enterprises have embraced continuous integration and deployment within their DevOps, signaling a pervasive trend toward hastening release cycles.
2. voxxeddays.com/luxembourg/ #voxxeddaysLU
Who is this guy ?
What does he do ?
How does he dare stand in front
of us today and speak about
such grave things as system
architectures and monoliths and
coupling ?
Let’s speak about you instead
6. voxxeddays.com/luxembourg/ #voxxeddaysLU
Go buy yourselves an
Enterprise
Service
Bus
and all your problems will be solved
The next step of evolution
Expensive
Shit
Ball
Any idea what SOA means in Dutch ?
11. voxxeddays.com/luxembourg/ #voxxeddaysLU
Bounded context
Explicitly define the context within which a model applies.
Explicitly set boundaries in terms of
• team organization
• usage within specific parts of the application,
• and physical manifestations such as code bases and database schemas.
Standardize a single development process within the context, which need
not be used elsewhere.
Model expressions, like any other phrase, only have meaning in context.
Source : Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans - Chapter 14 : Maintaing model integrity
13. voxxeddays.com/luxembourg/ #voxxeddaysLU
Aggregates
• Transactional consistency boundaries
• Aggregate root is the gatekeeper of the aggregate
it enforces business rules
it cannot be blindsided
Source : Modeling Aggregates with DDD and Entity Framework by Vaughn Vernon
16. voxxeddays.com/luxembourg/ #voxxeddaysLU
You applied Stategic Design and now have several pristine Domain
Models in context
You system is devided into well defined Bounded Countexts and your
contexts do not leak
Your domain logic and business rules are explicitly expressed in your
code though well designed Aggregates
All is for the best
But
• How do you write reports ?
• Should you load 200 000 aggregates to compute statistics ?
18. voxxeddays.com/luxembourg/ #voxxeddaysLU
Command / Query Responsibility Segragation
Event Centric: Finding Simplicity in Complex Systems by Greg Young
Estimated release date
Sometime between Q3 2016
and 2035 Greg Young
http://buildstuff.lt
19. voxxeddays.com/luxembourg/ #voxxeddaysLU
Commands and Queries
Command
• It requests an action
• It mutates state
• It does not return data
Query
• It answers a question
• It does not mutate state
• It returns data
20. voxxeddays.com/luxembourg/ #voxxeddaysLU
Optimized for reads
• 80/20 law
• Denormalization brings direct
display in UI
• Thin data access layer
• Caching
• BASE on the read side
Write side ensures consistency
• Use of DDD
• Domain logic and rules are
enforced by aggregates
• ACID on the write side
Source : CQRS Journey
CQRS
22. voxxeddays.com/luxembourg/ #voxxeddaysLU
Brewer’s CAP theorem
• Consistency : all nodes see the same data at the same time
• Availability : a guarantee that every request receives a
response about whether it succeeded or failed
• Partition tolerance : the system continues to operate despite
arbitrary partitioning due to network failures
No, you can’t always get what you want
Sometimes, you need to make hard a choices
Source : https://en.wikipedia.org/wiki/CAP_theorem
23. voxxeddays.com/luxembourg/ #voxxeddaysLU
Eventual consistency
Don’t underestimate the cost of
maintaining consistency all the time
• What is the book of record ?
It’s ok to use stale data
• Your data is stale as soon as it has
been read from the database anyway
Don’t fight it, embrace it
• It might even become a competitive
advantage
26. voxxeddays.com/luxembourg/ #voxxeddaysLU
Using a reliable message transport
Source : CQRS Journey
Caracteristics
• Eventually consistent
• Performance
• Availability
Problems ?
• Your infrastructure needs
to supports transaction
over database and queue
28. voxxeddays.com/luxembourg/ #voxxeddaysLU
You seperated your reads from your writes
You bind DTO direcly in your UI
Your UI is task oriented
Your write side ensures business rules and consistency
Your read side is eventually consistent
You did good
But
• You persist only current state and you still need an ORM
• Syncing read from write is expensive and might require some kind of
transaction
32. voxxeddays.com/luxembourg/ #voxxeddaysLU
Event Sourcing
Save
• Don’t save current state
• Save a stream of small immutable
events instead
Load
• Replay events to restore current state
• Use snapshots if need be
Sync
• Use events to sync the read model
• Use a publish/subscribe pattern to
scale denormalization
Source : CQRS Journey
33. voxxeddays.com/luxembourg/ #voxxeddaysLU
Projections
React to events as they are written
Create new events when
interesting combinations occur
Write temporal correlation queries
that run over historical data and on
into the future
Source : http://www.jefclaes.be/2013/10/event-projections.html
34. voxxeddays.com/luxembourg/ #voxxeddaysLU
Integration made easy
Source : http://www.confluent.io/blog/making-sense-of-stream-processing/
• Your even stream can be
used as a message queue
• Use event projections to
denormalize in multiple read
models or external systems
• Leverage publish/subscribe
infrastructure
35. voxxeddays.com/luxembourg/ #voxxeddaysLU
https://geteventstore.com/
Event sourced by design
• Writen as an event sourced system
• Open source go check the code out
Projections
• Consume or create new events
• Volatile, catch-up or persistent subsciptions
Portable
• Runs on mono on Linux, OS X and
Windows
• Clients API for HTTP, .NET, Akka, Erlang
Great performances
• 15,000 writes per second
• 50,000 reads per second
39. voxxeddays.com/luxembourg/ #voxxeddaysLU
A workshop format for
quickly exploring complex
business domains
Source:https://twitter.com/ziobrando/status/535828549102759936
Source : http://fr.slideshare.net/ziobrando/event-storming-recipes
EventStorming
It is powerful
It is engaging
It is efficient
It is easy
It is fun
40. voxxeddays.com/luxembourg/ #voxxeddaysLU
Things we’ve learnt from modeling with events
• Applies to many domains
• Changes the way domain experts think about the system
• Focus on behavior instead of structure
• Focus on temporal aspects : this happens before that
Develop new competitive advantage
44. voxxeddays.com/luxembourg/ #voxxeddaysLU
Imperative vs Reactive
Responsive
• Respond in a timely manner
• Consistent quality of service
Resilient
• Stay responsive in the face of failure
• Failures are contained
• Recovery is delegated
to an other component
Elastic
• Stay responsive under
varying workloads
• No bottlenecks
Message driven
• Asynchronous message passing
• Clear boundaries ensure loose coupling
Source : http://www.reactivemanifesto.org
46. voxxeddays.com/luxembourg/ #voxxeddaysLU
Actor model
An actor is a computational entity that, in response to a message
it receives, can concurrently:
• send a finite number of messages to other actors;
• create a finite number of new actors;
• designate the behavior to be used for the next message it receives.
Computational model
Inherently concurrent
Infinitely composable
Fault tolerant through supervision
Source : http://www.brianstorti.com/the-actor-model
48. voxxeddays.com/luxembourg/ #voxxeddaysLU
• Functional language
• Immutable state
• Functions with no side effect
• Type system enforces invariants
• Event processing is a left fold
C#
F#
Source : Scott Wlaschin https://fsharpforfunandprofit.com/ddd
It’s all functional
State <= State + Event
49. voxxeddays.com/luxembourg/ #voxxeddaysLU
Messaging & storage
Messaging infrastructure
• RabbitMQ
• ZeroMQ
• Apache Kafka
• Azure Service Bus
Make your pick
• Column
• Key-Value
• Document
• Graph
• Multi-model
Choose the right tool according to your context
No dogma
51. voxxeddays.com/luxembourg/ #voxxeddaysLU
Embrace the new trends
IoT
• Telemetry == Events
• Stream analytics
• Smart Everything
Source:https://www.control4.com/blog/2014/03/the-internet-of-things-and-the-connected-home
Big data
• Machine learning
• Deep learning
• Data lake
Source:https://www.ucl.ac.uk/big-data/bdi
53. voxxeddays.com/luxembourg/ #voxxeddaysLU
What is the next big thing ?
MicroServices is just the latest trend
Something else will come up !
Good modeling & design principles stay
valuable through time
• SOLID
• Patterns of Enterprise Application Architecture
• Enterprise Integration Patterns
• Domain-Driven Design
Loose coupling + high cohesion
54. voxxeddays.com/luxembourg/ #voxxeddaysLU
Distributed software is hard
First rule of disributed sofware
DON’T DISTRUBUTE unless you genuinely need to
Design your software so that you might distribute
Beware of accidental complexity
• Distribution makes things more difficult to understand
• The learning curve is steep
Remember : CQRS/ES is not a top level architecture
Use it only when it makes sense
56. voxxeddays.com/luxembourg/ #voxxeddaysLU
Interesting video content
• DDDEurope - Eric Evans — Tackling Complexity in the Heart of Software
• DDDEurope - Greg Young — A Decade of DDD, CQRS, Event Sourcing
• DDDEurope - Alberto Brandolini — The Precision Blade
• DDDx - Eric Evans - DDD and Microservices: At Last, Some Boundaries!
• DDDx - Scott Wlaschin – Domain Driven Design with the F# type system
• React 2014 - Erik Meijer – What does it mean to be Reactive?
• Lang.NEXT - Hewitt, Meijer and Szyperski – The Actor Model
Editor's Notes
Who knows anything about
Microservices
DDD
CQRS/ES
Event-driven architectures
I have been part of the DDD community for quite some time now.
Read the book in 2006
DDDx twice
DDDEurope in 2016
Speaker at BuildStuff
Let me know if I go too fast
Ask questions
What is a monolith ?
2001: A space odysey
Monolith = fear + curiosity
Mysterious force fallen from the sky
The central source that holds everything together
In software
Client/Server
Single unit of deployment per component
Vertical deployment even though N-tier
Scale up
Monolithic systems are not so bad.
I have built many of them that are still running
Who has never built a system like that ?
Problems
Tighly coupled
Heavy to deploy
Enforces silos structure Font end devs vs COBOL devs, devs vs ops
Do not scale very well Scale up has limitations
Do not cope well with concurrency
Leveraging multi core procs and cloud
CORBA
COM/DCOM
Webservices & WS* of death
Nothing very new
N-Tier
RMI
COM/DCOM/COM+
CORBA
WS* of death
REST
ESB
Heavyweight
Brokered architecture != distributed
Difficult to deploy and upgrade
Seldom used properly
business logic ends up in the ESB instead of in the domain model
ESB = Software vendors trick
Another software vendor trick makes you belive that
everything has to be built with a relational DB
Problem
Integration through the DB
Object/Relational impedence mismatch
Single point of failure
Does not scale
Again a software vendors trick
Now we have a better solution : Microservices
They are going to save the world
Is everything so much better ?
It’s not only about deployment, it’s all about boundaries
We tend to see everything as a technical problem because we like that
But it’s actually a business problem.
How do you model a system that makes sense for your actual business domain ?
It’s all about clean responsabilities segregation
DDD boundaries
It’s not about building blocks and patterns
It’s all about boundaries
The 2 most important concepts in DDD ?
Bounded contexts
Aggregates
According to Eric himself, you should start reading the book from chapter 7 and forward, then come back to the beginning
Skip the Building Blocks and understand Strategic Design first
Boundaries Encapsulation
Clean, documented ways to communicate
1 team 1 Bounded Context
Bounded contexts live into sub domains
You want to focus on your core domain where you have your competitive advantage
Aggregates should be simple
Beware the naive aggregate design approach
Duplicated in different Bounded Contexts
DB schema to separate concerns
Modules/Namespace
Perfectly viable option… but
Basic Availability
Soft-state
Eventual consistency
Atomic: Everything in a transaction succeeds or the entire transaction is rolled back.
Consistent: A transaction cannot leave the database in an inconsistent state.
Isolated: Transactions cannot interfere with each other.
Durable: Completed transactions persist, even when servers restart etc.
Rolling Stones song
If you want to favor availability and resilience of your system, you will need to relax consistency
2-phase commit
Viable solution
Viable solution
Think accounting
What is the book of records
ATM
Warehouse
The system is not the book of record
The physical world is the book of record
Device app is event sourced
Optimistic concurrency
Conflict resolution on events
Think about GIT