This document discusses Command Query Responsibility Segregation (CQRS). It begins by explaining that CQRS splits commands and queries into separate paths at an architectural level. This aligns with how people think about tasks (commands) and requesting information (queries) differently. The document then discusses how CQRS provides an eventually consistent architecture based on CAP theorem, similar to BASE. It explains that CQRS reads data from a separate read model than where commands write to the domain model. In summary, CQRS separates commands from queries in a way that matches how people think, and provides an eventually consistent architecture.
CQRS and what it means for your architectureRichard Banks
A session on the CQRS pattern (Command Query Responsibility Separation) with C# code samples, and a discussion of what it means for your architecture and when and why you should use it. First presented at the Sydney Alt.Net group in June 2016.
CQRS recipes or how to cook your architectureThomas Jaskula
The principles of CQRS is very simple. Separate Reads from Writes. Although when you try to implement it in you can face many technical and functional problems. This presentation starts from very simple architecture and while business requirements are added we consider other architecture ending with a CQRS + DDD + ES one.
Reactive Development: Commands, Actors and Events. Oh My!!David Hoerster
Distributed applications are becoming more popular with the increasing popularity of microservices (however you want to define that term). But the principles of distributed application development are key if you want to build a system that is resilient, responsive, elastic and maintainable. In this workshop, we’ll review the principles of CQRS and the Reactive Manifesto, and how they complement each other. We’ll build an application that can handle a large stream of data, and allow users to still have a responsive experience while interacting with real-time and near-real-time data.
We’ll look at Akka.NET as the workhorse inside your services, and how the principles of CQRS can help with your service-to-service communications.
We’ll also look at how Event Sourcing can aid in managing your domain state, and how an event stream can be used to project data for your system for a number of different uses. We’ll build our own simple event store, but also look at commercially available stores, too.
This session will focus on using Akka.NET along with a few other tools and technologies, such as EventStore and MongoDB. The concepts learned in this session will be applicable to a number of different tools, technologies and languages.
It's rare that you get a chance to build an applicaton the way you want to, from the ground up. If you did, what architectural choices would you make and why? Command Query Responsibility Segregation (CQRS) is a hot topic and has been described as crack for architecture addicts. This talk will look at why CQRS may be a good architectural choice for your project, how to use the NCQRS framework, and how this framework can be incorporated with ASP.NET MVC on the front-end and Azure on the back-end. This talk will also focus on the learning curve experienced when implementing an architectural style that bends the curve and is out of the mainstream of traditional application development.
CQRS and what it means for your architectureRichard Banks
A session on the CQRS pattern (Command Query Responsibility Separation) with C# code samples, and a discussion of what it means for your architecture and when and why you should use it. First presented at the Sydney Alt.Net group in June 2016.
CQRS recipes or how to cook your architectureThomas Jaskula
The principles of CQRS is very simple. Separate Reads from Writes. Although when you try to implement it in you can face many technical and functional problems. This presentation starts from very simple architecture and while business requirements are added we consider other architecture ending with a CQRS + DDD + ES one.
Reactive Development: Commands, Actors and Events. Oh My!!David Hoerster
Distributed applications are becoming more popular with the increasing popularity of microservices (however you want to define that term). But the principles of distributed application development are key if you want to build a system that is resilient, responsive, elastic and maintainable. In this workshop, we’ll review the principles of CQRS and the Reactive Manifesto, and how they complement each other. We’ll build an application that can handle a large stream of data, and allow users to still have a responsive experience while interacting with real-time and near-real-time data.
We’ll look at Akka.NET as the workhorse inside your services, and how the principles of CQRS can help with your service-to-service communications.
We’ll also look at how Event Sourcing can aid in managing your domain state, and how an event stream can be used to project data for your system for a number of different uses. We’ll build our own simple event store, but also look at commercially available stores, too.
This session will focus on using Akka.NET along with a few other tools and technologies, such as EventStore and MongoDB. The concepts learned in this session will be applicable to a number of different tools, technologies and languages.
It's rare that you get a chance to build an applicaton the way you want to, from the ground up. If you did, what architectural choices would you make and why? Command Query Responsibility Segregation (CQRS) is a hot topic and has been described as crack for architecture addicts. This talk will look at why CQRS may be a good architectural choice for your project, how to use the NCQRS framework, and how this framework can be incorporated with ASP.NET MVC on the front-end and Azure on the back-end. This talk will also focus on the learning curve experienced when implementing an architectural style that bends the curve and is out of the mainstream of traditional application development.
Alternative microservices - one size doesn't fit allJeppe Cramon
A different look at microservices. Is there only one way to approach microservices, what are the pit falls, what protocols and communication patterns should we use. How do we discover service boundaries? What role does applications and the UI play?
20160609 nike techtalks reactive applications tools of the tradeshinolajla
An update to my talk about concurrency abstractions, including event loops (node.js and Vert.x), CSP (Go, Clojure), Futures, CPS/Dataflow (RxJava) and Actors (Erlang, Akka)
Commands, events, queries - three types of messages that travel through your application. Some originate from the web, some from the command-line. Your application sends some of them to a database, or a message queue. What is the ideal infrastructure for an application to support this on-going stream of messages? What kind of architectural design fits best?
This talk provides answers to these questions: we take the *hexagonal* approach to software architecture. We look at messages, how they cross boundaries and how you can make steady communication lines between your application and other systems, like web browsers, terminals, databases and message queues. You will learn how to separate the technical aspects of these connections from the core behavior of your application by implementing design patterns like the *command bus*, and design principles like *dependency inversion*.
Everything fails all the time. Knowing how to deal with these failures in serverless applications becomes essential to building resilient, highly-available systems. In traditional monolithic applications, catching errors and handling retries is relatively straightforward. But as our systems become more distributed, we now have multiple (often asynchronous) components processing events from several sources, all with vastly different retry behaviors and failure mechanisms. Utilizing old patterns can cause errors to get swallowed, creating brittle, unreliable systems that are difficult to debug and hard to maintain.
In this talk, we’ll explore the built-in tools and processes that AWS has in place to appropriately deal with failures in distributed serverless applications.
Domain-Driven Design provides a set of principles and patterns that are useful for tackling complex software problems. In this session, we'll review a few DDD concepts and demonstrate how they can be applied within an ASP.NET MVC Solution to keep concerns separated and implementation details loosely coupled from business logic and your domain model.
Presented at FalafelCON 2014, San Francisco, September 2014
So you have finally this great product in mind with all its variations. It will be cool, slick, social have notification and million of people will use it! One problem : it all works because there is a server behind this great future client. But the more you talk with people around, the more you are confused on what to use to develop your server technology, how much investment (both in money and work) will be required, and how long will this investment last. Here we’ll talk about three possible ways (Facebook Parse , use of Heroku and do everything directly on AWS) and how they compare to each other.
#JaxLondon keynote: Developing applications with a microservice architectureChris Richardson
The micro-service architecture, which structures an application as a set of small, narrowly focused, independently deployable services, is becoming an increasingly popular way to build applications. This approach avoids many of the problems of a monolithic architecture. It simplifies deployment and let’s you create highly scalable and available applications. In this keynote we describe the micro-service architecture and how to use it to build complex applications. You will learn how techniques such as Command Query Responsibility Segregation (CQRS) and Event Sourcing address the key challenges of developing applications with this architecture. We will also cover some of the various frameworks such as Spring Boot that you can use to implement micro-services.
Azure Service Fabric - weaving services in hyper-scaleSebastian Gebski
W listopadzie 2015 Microsoft udostępnił wstępną wersję (Public Preview) swojej nowej platformy usługowej w chmurze o nazwie Azure Service Fabric. Tego typu ogłoszenie niekoniecznie musi być od razu powodem do nadmiernej ekscytacji, ale jeśli dołożymy do niego kilka faktów, np. to że Service Fabric działał już od pewnego czasu "pod maską" takich produktów jak Cortana, Azure SQL, Power BI, Skype for Business; udostępnia zarówno tradycyjny model (mikro)serwisowy jak i model aktorów (a'la OTP, Akka, Orleans); umożliwia tworzenie zarówno usług bezstanowych jak i stanowych z izolacją lub współdzieleniem danych ... Tak, Service Fabric zaczyna wyglądać naprawdę ciekawie, zwłaszcza, że będzie można go używać nie tylko w chmurze, ale również lokalnie. Pisząc kod usług w .NET, ale również i ... np. w Javie. Jeśli chcesz dowiedzieć się więcej o tym czym ma stać się Service Fabric, jak będzie się na niego tworzyć oprogramowanie oraz jakie są warunki, aby osiągnać zapowiadaną hiper-skalowalność, zapraszam na swoją prezentację poświęconą właśnie Azure Service Fabric. Jeszcze jedno: przy przygotowywaniu prezentacji nie ucierpiał żadnej mikroserwis ...
10 years after the release of the original book Domain Driven Design by Eric Evans we are seeing more and more applications built on the core concepts of DDD. Still, there is a long way to go before we fully grasp all its potential. First we need to change the way we do things in our projects. In this session I will show a possible implementation in C# that I've been using in many projects.
Building resilient serverless systems with non serverless componentsJeremy Daly
Serverless functions (like AWS Lambda, Google Cloud Functions, and Azure Functions) have the ability to scale almost infinitely to handle massive workload spikes. While this is a great solution for compute, it can be a MAJOR PROBLEM for other downstream resources like RDBMS, third-party APIs, legacy systems, and even most managed services hosted by your cloud provider. Whether you’re maxing out database connections, exceeding API quotas, or simply flooding a system with too many requests at once, serverless functions can DDoS your components and potentially take down your application. In this talk, we’ll discuss strategies and architectural patterns to create highly resilient serverless applications that can mitigate and alleviate pressure on “non-serverless” downstream systems during peak load times.
Just like you can't defeat the laws of physics there are natural laws that ultimately decide software performance. Even the latest technology beta is still bound by Newton's laws, and you can't change the speed of light, even in the cloud!
Given at DogFoodCon 2016 in Columbus, Ohio
Domain Events, a Domain-Driven Design (DDD) pattern, provide a way to decouple your code. Rather than hard-coding a series of steps that must be completed in response to a particular action a user takes, that action can raise an event. Handlers for an event can be added without changing the code responsible for raising the event, resulting in a more extensible design. Coupled with SignalR or push notifications in the UI layer, domain events can trigger live updates, even to web-based applications and mobile apps.
Just over a year ago (before becoming the full time chair and advocate of QCon London, San Francisco, and New York), my main role was with HPE as the principal architect for a client in the US public sector.
The systems we supported were responsible for personnel information, scholarships decisions, and record management. Like so many others, we were also faced with legacy applications, COTS product integrations, polyglot code bases, and often brittle deployments. In an effort to decouple code bases and address some of these issues, we started advocating for a Microservice architecture and trying to distinguish it from the SOA practices of the past.
Now, it’s a year later. I have had the incredible opportunity to have access to architects, engineers, and leaders from some of the world’s more respected software companies. These are companies like Uber, Microsoft, Netflix, Apple, Google, Slack, Pinterest, and Etsy. I’ve had the chance to have one-on-one discussions with Chief Architects, developers, and engineers building the apps I most admire and use every day (some leveraging Microservices, some embracing Monoliths, and others falling somewhere in between).
Patterns & Practices of Microservices is some of the things I wish I knew before beginning a push towards Microservices just over a year ago. It’s the practices of companies leveraging Microservices, it’s the technology tradeoffs when deciding between Monoliths and Microservices, and it’s the advice I’ve heard in interviewing, podcasting, and iterating on presentations from software giants like Adrian Cockcroft, Matt Ranney, Josh Evans, Martin Thompson, and literally hundreds of other engineers who drop knowledge at QCons around the world.
Cosa sono i microservizi? Perché li devo usare? Sono una moda? In alcuni dicono che siano una soluzione "standard", altri dicono che non si dovrebbero usare, altri ne negano l'esistenza... Ma chi sviluppa software e deve portare a casa un po' di software che funziona... cosa deve fare?
Proviamo a vedere e a capire da dove arrivano, cosa sono e quali caratteristiche hanno, in modo da fare in ogni contesto una scelta una consapevole.
Talk given during Devoxx Belgium 2016
https://cfp.devoxx.be/2016/speaker/anthony_dahanne
Caching 101
Caching on the JVM
Clustered Caching with Terracotta Server
Deployment examples
Alternative microservices - one size doesn't fit allJeppe Cramon
A different look at microservices. Is there only one way to approach microservices, what are the pit falls, what protocols and communication patterns should we use. How do we discover service boundaries? What role does applications and the UI play?
20160609 nike techtalks reactive applications tools of the tradeshinolajla
An update to my talk about concurrency abstractions, including event loops (node.js and Vert.x), CSP (Go, Clojure), Futures, CPS/Dataflow (RxJava) and Actors (Erlang, Akka)
Commands, events, queries - three types of messages that travel through your application. Some originate from the web, some from the command-line. Your application sends some of them to a database, or a message queue. What is the ideal infrastructure for an application to support this on-going stream of messages? What kind of architectural design fits best?
This talk provides answers to these questions: we take the *hexagonal* approach to software architecture. We look at messages, how they cross boundaries and how you can make steady communication lines between your application and other systems, like web browsers, terminals, databases and message queues. You will learn how to separate the technical aspects of these connections from the core behavior of your application by implementing design patterns like the *command bus*, and design principles like *dependency inversion*.
Everything fails all the time. Knowing how to deal with these failures in serverless applications becomes essential to building resilient, highly-available systems. In traditional monolithic applications, catching errors and handling retries is relatively straightforward. But as our systems become more distributed, we now have multiple (often asynchronous) components processing events from several sources, all with vastly different retry behaviors and failure mechanisms. Utilizing old patterns can cause errors to get swallowed, creating brittle, unreliable systems that are difficult to debug and hard to maintain.
In this talk, we’ll explore the built-in tools and processes that AWS has in place to appropriately deal with failures in distributed serverless applications.
Domain-Driven Design provides a set of principles and patterns that are useful for tackling complex software problems. In this session, we'll review a few DDD concepts and demonstrate how they can be applied within an ASP.NET MVC Solution to keep concerns separated and implementation details loosely coupled from business logic and your domain model.
Presented at FalafelCON 2014, San Francisco, September 2014
So you have finally this great product in mind with all its variations. It will be cool, slick, social have notification and million of people will use it! One problem : it all works because there is a server behind this great future client. But the more you talk with people around, the more you are confused on what to use to develop your server technology, how much investment (both in money and work) will be required, and how long will this investment last. Here we’ll talk about three possible ways (Facebook Parse , use of Heroku and do everything directly on AWS) and how they compare to each other.
#JaxLondon keynote: Developing applications with a microservice architectureChris Richardson
The micro-service architecture, which structures an application as a set of small, narrowly focused, independently deployable services, is becoming an increasingly popular way to build applications. This approach avoids many of the problems of a monolithic architecture. It simplifies deployment and let’s you create highly scalable and available applications. In this keynote we describe the micro-service architecture and how to use it to build complex applications. You will learn how techniques such as Command Query Responsibility Segregation (CQRS) and Event Sourcing address the key challenges of developing applications with this architecture. We will also cover some of the various frameworks such as Spring Boot that you can use to implement micro-services.
Azure Service Fabric - weaving services in hyper-scaleSebastian Gebski
W listopadzie 2015 Microsoft udostępnił wstępną wersję (Public Preview) swojej nowej platformy usługowej w chmurze o nazwie Azure Service Fabric. Tego typu ogłoszenie niekoniecznie musi być od razu powodem do nadmiernej ekscytacji, ale jeśli dołożymy do niego kilka faktów, np. to że Service Fabric działał już od pewnego czasu "pod maską" takich produktów jak Cortana, Azure SQL, Power BI, Skype for Business; udostępnia zarówno tradycyjny model (mikro)serwisowy jak i model aktorów (a'la OTP, Akka, Orleans); umożliwia tworzenie zarówno usług bezstanowych jak i stanowych z izolacją lub współdzieleniem danych ... Tak, Service Fabric zaczyna wyglądać naprawdę ciekawie, zwłaszcza, że będzie można go używać nie tylko w chmurze, ale również lokalnie. Pisząc kod usług w .NET, ale również i ... np. w Javie. Jeśli chcesz dowiedzieć się więcej o tym czym ma stać się Service Fabric, jak będzie się na niego tworzyć oprogramowanie oraz jakie są warunki, aby osiągnać zapowiadaną hiper-skalowalność, zapraszam na swoją prezentację poświęconą właśnie Azure Service Fabric. Jeszcze jedno: przy przygotowywaniu prezentacji nie ucierpiał żadnej mikroserwis ...
10 years after the release of the original book Domain Driven Design by Eric Evans we are seeing more and more applications built on the core concepts of DDD. Still, there is a long way to go before we fully grasp all its potential. First we need to change the way we do things in our projects. In this session I will show a possible implementation in C# that I've been using in many projects.
Building resilient serverless systems with non serverless componentsJeremy Daly
Serverless functions (like AWS Lambda, Google Cloud Functions, and Azure Functions) have the ability to scale almost infinitely to handle massive workload spikes. While this is a great solution for compute, it can be a MAJOR PROBLEM for other downstream resources like RDBMS, third-party APIs, legacy systems, and even most managed services hosted by your cloud provider. Whether you’re maxing out database connections, exceeding API quotas, or simply flooding a system with too many requests at once, serverless functions can DDoS your components and potentially take down your application. In this talk, we’ll discuss strategies and architectural patterns to create highly resilient serverless applications that can mitigate and alleviate pressure on “non-serverless” downstream systems during peak load times.
Just like you can't defeat the laws of physics there are natural laws that ultimately decide software performance. Even the latest technology beta is still bound by Newton's laws, and you can't change the speed of light, even in the cloud!
Given at DogFoodCon 2016 in Columbus, Ohio
Domain Events, a Domain-Driven Design (DDD) pattern, provide a way to decouple your code. Rather than hard-coding a series of steps that must be completed in response to a particular action a user takes, that action can raise an event. Handlers for an event can be added without changing the code responsible for raising the event, resulting in a more extensible design. Coupled with SignalR or push notifications in the UI layer, domain events can trigger live updates, even to web-based applications and mobile apps.
Just over a year ago (before becoming the full time chair and advocate of QCon London, San Francisco, and New York), my main role was with HPE as the principal architect for a client in the US public sector.
The systems we supported were responsible for personnel information, scholarships decisions, and record management. Like so many others, we were also faced with legacy applications, COTS product integrations, polyglot code bases, and often brittle deployments. In an effort to decouple code bases and address some of these issues, we started advocating for a Microservice architecture and trying to distinguish it from the SOA practices of the past.
Now, it’s a year later. I have had the incredible opportunity to have access to architects, engineers, and leaders from some of the world’s more respected software companies. These are companies like Uber, Microsoft, Netflix, Apple, Google, Slack, Pinterest, and Etsy. I’ve had the chance to have one-on-one discussions with Chief Architects, developers, and engineers building the apps I most admire and use every day (some leveraging Microservices, some embracing Monoliths, and others falling somewhere in between).
Patterns & Practices of Microservices is some of the things I wish I knew before beginning a push towards Microservices just over a year ago. It’s the practices of companies leveraging Microservices, it’s the technology tradeoffs when deciding between Monoliths and Microservices, and it’s the advice I’ve heard in interviewing, podcasting, and iterating on presentations from software giants like Adrian Cockcroft, Matt Ranney, Josh Evans, Martin Thompson, and literally hundreds of other engineers who drop knowledge at QCons around the world.
Cosa sono i microservizi? Perché li devo usare? Sono una moda? In alcuni dicono che siano una soluzione "standard", altri dicono che non si dovrebbero usare, altri ne negano l'esistenza... Ma chi sviluppa software e deve portare a casa un po' di software che funziona... cosa deve fare?
Proviamo a vedere e a capire da dove arrivano, cosa sono e quali caratteristiche hanno, in modo da fare in ogni contesto una scelta una consapevole.
Talk given during Devoxx Belgium 2016
https://cfp.devoxx.be/2016/speaker/anthony_dahanne
Caching 101
Caching on the JVM
Clustered Caching with Terracotta Server
Deployment examples
Cloud Design Pattern at Carlerton University
External Config Pattern, Cache Aside, Federated Identity Pattern, Valet Key Pattern, Gatekeeper Pattern, Circuit Breaker Pattern, Retry Pattern and the Strangler Pattern. These patterns depicts common problems in designing cloud-hosted applications and design patterns that offer guidance.
This guide contains twenty-four design patterns and ten related guidance topics that articulate the benefits of applying patterns by showing how each piece can fit into the big picture of cloud application architectures. It includes code samples and general advice on using each pattern.
Containing twenty-four design patterns and ten related guidance topics, this guide articulates the benefit of applying patterns by showing how each piece can fit into the big picture of cloud application architectures. It also discusses the benefits and considerations for each pattern. Most of the patterns have code samples or snippets that show how to implement the patterns using the features of Windows Azure. However the majority of topics described in this guide are equally relevant to all kinds of distributed systems, whether hosted on Windows Azure or on other cloud platforms.
At Ottawa .NET User Group I had a talk on Cloud Design Patterns, External Config Pattern, Cache Aside, Federated Identity Pattern, Valet Key Pattern, Gatekeeper Pattern and the Circuit Breaker Pattern. These patterns depicts common problems in designing cloud-hosted applications and design patterns that offer guidance.
Software Architecture for Cloud InfrastructureTapio Rautonen
Distributed systems are hard to build. Software architecture must be carefully crafted to suit cloud infrastructure.
Design for failure. Learn from failure. Adopt new cloud compatible design patterns and follow the guidelines during the journey of building cloud native applications.
Advanced Concept of Caching - Mathilde Lemee - Codemotion Milan 2014Codemotion
We all know that caching is a solution for developers to increase the performance of an application. We will start by presenting the JSR-107 terminology and the most important cache patterns. Some use cases will also be discussed and you will see how you can scale your cache from a single node to a multi node cluster (JSR 347). If you are a beginners in caching or if the words Cache Aside, Write-Behind, Read/Write Through doesn’t means anything to you or if you are interesting about high availability and scalable architecture, that this is the place to be!
Incident Management in the Age of DevOps and SRE Rundeck
Presented by Damon Edwards, co-founder of Rundeck, at QCon San Francisco 2019.
See a Demo of Rundeck Enterprise :
https://www.rundeck.com/see-demo
--or--
Download Rundeck Open Source here:
https://rundeck.com/open-source
Connect:
Stack Overflow community: https://stackoverflow.com/questions/tagged/rundeck
Github: https://github.com/rundeck/rundeck/issues
Twitter: https://twitter.com/Rundeck
Facebook: https://www.facebook.com/RundeckInc/
LinkedIn: www.linkedin.com › company › rundeck-inc
Paolo Kreth - Persistence layers for microservices – the converged database a...matteo mazzeri
This talk will present the difference between a polyglot persistence and a converged database approach in mapping data for microservices. An historical point of views will lead us in understanding the difficulties in operating different databases and stores and the repercussions operational bottlenecks have on development.
Incident Management in the Age of DevOps and SRE Rundeck
Keynote presentation at DevOps Con Munich, December 3, 2019, presented by Damon Edwards, co-founder of Rundeck.
Responding to incidents has always been the core job of Operations. With the rise of DevOps and SRE, how Operations work gets done — and who is doing the work — is changing. This talk will look at how high-performing organizations are applying DevOps and SRE practices to shorten incidents and reduce escalations.
See a Demo of Rundeck Enterprise :
https://www.rundeck.com/see-demo
--or--
Download Rundeck Open Source here:
https://rundeck.com/open-source
Connect:
Stack Overflow community: https://stackoverflow.com/questions/tagged/rundeck
Github: https://github.com/rundeck/rundeck/issues
Twitter: https://twitter.com/Rundeck
Facebook: https://www.facebook.com/RundeckInc/
LinkedIn: www.linkedin.com › company › rundeck-inc
CQRS (Command Query Responsibility Segregation) was all the hype in .NET architecture circles a few years back. But has it faded away? Is it old news? I argue that it hasn't, and the concepts of CQRS are alive and well and probably more widely accepted and considered today than a few years ago. From event-driven systems to the Reactive Manifesto, the principles of CQRS are with us and impacting many different tools. In this session, we'll explore those CQRS principles and how they have manifested themselves in the architectures of choice today. You'll come away with a greater appreciation of CQRS and ideas on how to incorporate those principles in your applications today.
Cloud Architecture Patterns for Mere Mortals - Bill Wilder - Vermont Code Cam...Bill Wilder
How do you design applications for the cloud so that they will be scalable and reliable? In this talk, we will explain several architectural patterns which are popular for cloud computing: we will look at the need for the patterns generally, then look concretely at how you might realize them using capabilities of the Windows Azure Platform. CQRS, NoSQL, Sharding, and a few smaller patterns will be considered.
Presented by Bill Wilder at Vermont Code Camp III on Saturday September 10, 2011. http://blog.codingoutloud.com/2011/09/12/vermont-code-camp-iii/
"The Intersection of architecture and implementation", Mark RichardsFwdays
A common saying by software architects is “that’s an implementation detail”. All too often we treat software architecture and implementation as two separate things, where implementation is something that happens once a software architecture is defined. In fact, it’s the other way around: software architecture should be viewed as a first draft, where implementation reveals more details and refinements. In this provocative keynote Mark Richards discusses the intersection of architecture and implementation, and how the two must be in constant alignment to achieve success. Through real-world examples, he shows how implementation can get out of alignment with the architecture, causing the system to fail to achieve its desired goals. He then shows some techniques and tools to help ensure alignment between architecture and implementation.
The PHP world is spinning quite fast these days. There’s a lot to keep up with. You can’t be an expert in all subjects, so you need a way to find out what’s relevant for you and your team. Which approaches to software development would be useful? Which programming paradigms could help you write better code? And which architectural styles will help your application to survive in this quickly changing world? In this talk I’ll help you answer these questions by taking a bird’s-eye view. I will quickly guide you along some of the most fascinating topics in modern PHP development: DDD, BDD, TDD, hexagonal architecture, CQRS, event sourcing and micro-services. We’ll see how these things are related to each other, and how understanding and applying them can help you improve your software projects in many ways.
This presentation is meant to guide you and get you started asking the right questions regarding your IT Infrastructure - keeping all your options in mind.
The Ember.js Framework - Everything You Need To KnowAll Things Open
All Things Open 2014 - Day 2
Thursday, October 23rd, 2014
Yehuda Katz
Founder of Tilde
Front Dev 1
The Ember.js Framework - Everything You Need To Know
What is the ‘Cloud’? Today almost every self-proclaimed industry pundit who attempts to describe cloud computing talks about ‘elasticity’ or how magically new servers appear in the cloud with a swish of a magic wand!
But, is that all we get with cloud computing?! What is wrong or missing in today’s software world? Didn’t we build and run software for the past 50+ years? Why do we need this cloud computing all of a sudden? This whitepaper attempts to answer whether cloud computing is the right strategy for you and your enterprise. The intent of this paper is not to try and compare various cloud offerings (either Azure or Amazon), the objective is to sow new ideas in your mind and the intent is to explain in layman’s terms how cloud computing is silently revolutionizing our 50 year old industry.
2019 05 - Exploring Container Offerings in AzureAdam Stephensen
Containers are portable, make deployments fast and predictable and help devs and IT Pros to get along. In this talk I’ll show you how easy it is to start leveraging the benefits of containers, I’ll make sense of when to use the various container offerings in Azure and show how to avoid the common container pitfalls. (Spoiler – Mistake #1 is thinking you need Kubernetes! K.I.S.S.)
Javaland 2017: "You´ll do microservices now". Now what?André Goliath
The slides for my talk at JavaLand 2017. Note: The slides are in english, only the title is german. The talk is all about do's and dont's in microservice landscapes.
Better and Faster: A Journey Toward Clean Code and EnjoymentChris Holland
Video: http://bit.ly/tdd-talk-2
This slideshow has links, download the PDF to click them.
While this presentation touches on PHP a fair bit, it does make parallels to other ecosystems such as Java and C#/.Net, building toward an approach for building Web Applications in a Test-Driven way.
Have you ever jumped into a legacy software project and gotten to a point where it takes a near-infinite amount of time to deliver any new feature, for fear of breaking legacy functionality you’ve barely begun to understand? Software Engineering can be extremely difficult and maddening. But it doesn’t have to be. We will explore leveraging TDD and OOP principles to make Software Engineering fun again.
Coding exercises supporting this presentation are available here:
http://bit.ly/tdd-vids
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
9. Why Don’t We Talk Like
“Normal” People Do?
Developers are usually
techy
10. Why Don’t We Talk Like
“Normal” People Do?
Developers are usually
techy
Business people usually
don’t understand “techy”
11. Why Don’t We Talk Like
“Normal” People Do?
Developers are usually
techy
Business people usually
don’t understand “techy”
So why do we try to
make them think like we
do?
13. Why Does Language
Matter So Much?
Without language, we
cannot convey meaning
14. Why Does Language
Matter So Much?
Without language, we
cannot convey meaning
But when we talk
different languages, we
lose in the translation
15. Why Does Language
Matter So Much?
Without language, we
cannot convey meaning
But when we talk
different languages, we
lose in the translation
Let’s agree on one
17. How Do “Normal” People
See the World?
People don’t think in
terms of “data”
18. How Do “Normal” People
See the World?
People don’t think in
terms of “data”
People think “tasks”
19. How Do “Normal” People
See the World?
People don’t think in
terms of “data”
People think “tasks”
People are objective
based, only computers
work on data
21. Otherwise Known As
“Grid Abuse”
Grids are a UI problem
created by developers
22. Otherwise Known As
“Grid Abuse”
Grids are a UI problem
created by developers
People don’t see
information in columns
and rows
23. Otherwise Known As
“Grid Abuse”
Grids are a UI problem
created by developers
People don’t see
information in columns
and rows
Even Excel doesn’t force
you to think that way
25. If People Don’t Think In Grids,
Why Force Data Into Grids?
Developers are ingrained
with RDBMS Rows and
Columns
26. If People Don’t Think In Grids,
Why Force Data Into Grids?
Developers are ingrained
with RDBMS Rows and
Columns
Business information
doesn’t come in rows and
columns
27. If People Don’t Think In Grids,
Why Force Data Into Grids?
Developers are ingrained
with RDBMS Rows and
Columns
Business information
doesn’t come in rows and
columns
We forced them to store
and use it that way
29. Thinking About
NoSQL Databases
If users think about
things like
“my documents” maybe
we should just store
stuff that way?
30. Thinking About
NoSQL Databases
If users think about
things like
“my documents” maybe
we should just store
stuff that way?
NoSQL databases let us
concentrate on what to
store, not how
41. CAP Theory
Consistency: The client perceives that a set of
operations has occurred all at once.
Availability: Every operation must terminate in
an intended response.
42. CAP Theory
Consistency: The client perceives that a set of
operations has occurred all at once.
Availability: Every operation must terminate in
an intended response.
Partition tolerance: Operations will complete,
even if individual components are unavailable.
43. CAP Theory
Consistency: The client perceives that a set of
operations has occurred all at once.
Availability: Every operation must terminate in
an intended response.
Partition tolerance: Operations will complete,
even if individual components are unavailable.
You cannot have all three
52. BASE
Basically Available, Soft state, Eventually
consistent
In CAP Theory BASE gives you:
Availability and Partition Tolerance
53. BASE
Basically Available, Soft state, Eventually
consistent
In CAP Theory BASE gives you:
Availability and Partition Tolerance
But Sacrifices Consistency
56. Command Query
Responsibility Segregation
Bertrand Meyer principle of CQS:
every method should either be a command that
performs an action, or a query that returns data to
the caller
At an architectural level this means:
either issue commands, or issue queries, but
never both
57. Command Query
Responsibility Segregation
Bertrand Meyer principle of CQS:
every method should either be a command that
performs an action, or a query that returns data to
the caller
At an architectural level this means:
either issue commands, or issue queries, but
never both
And, query from a separate source from your
domain commands
60. CQRS and BASE
CQRS gives us BASE at an architectural
level
We may not always be consistent
61. CQRS and BASE
CQRS gives us BASE at an architectural
level
We may not always be consistent
But most data isn’t consistent in reality
anyway, we just think it is
62. CQRS and BASE
CQRS gives us BASE at an architectural
level
We may not always be consistent
But most data isn’t consistent in reality
anyway, we just think it is
Eventually our architecture will be
consistent
63. CQRS in a Picture
Client
Command
Queries
Domain Event Handlers
Event Handlers
Publish (synchronous no bus)
Persist Update
Domain Persistence Read Model
64. CQRS in a Simpler Picture
Domain Events Read Model
Co
Os
m
m
DT
an
ds
Client
65. What Did All That Beginning
Stuff Have to Do With CQRS ???
66. What Did All That Beginning
Stuff Have to Do With CQRS ???
The way people think matters
67. What Did All That Beginning
Stuff Have to Do With CQRS ???
The way people think matters
CQRS splits actions from queries
68. What Did All That Beginning
Stuff Have to Do With CQRS ???
The way people think matters
CQRS splits actions from queries
And people think about asking
people to do things or asking
them for information
CQRS is a technical approach that solves a lot of problems
But it requires something more, a better way of working
So this presentation is more about how to think differently
You don’t ring your bank and say “I want you to view my customer record, edit the address fields and save it to your database”
You do call your bank and say “I would like to change my correspondence address”
You don’t ring your bank and say “I want you to view my customer record, edit the address fields and save it to your database”
You do call your bank and say “I would like to change my correspondence address”
You don’t ring your bank and say “I want you to view my customer record, edit the address fields and save it to your database”
You do call your bank and say “I would like to change my correspondence address”
Users think of lists of information ... my tweets, my bank account transaction, my facebook wall, my auctions, my Documents
This abuse extends to many areas of a business - we have abused users into talking our way, not theirs
Users think of lists of information ... my tweets, my bank account transaction, my facebook wall, my auctions, my Documents
This abuse extends to many areas of a business - we have abused users into talking our way, not theirs
Users think of lists of information ... my tweets, my bank account transaction, my facebook wall, my auctions, my Documents
This abuse extends to many areas of a business - we have abused users into talking our way, not theirs
Store data in a loose fashion
Only store what you need
In the format you want
Store data in a loose fashion
Only store what you need
In the format you want