What 5 years of implementation microservices has taught meJeppe Cramon
This is a sum up of what 15 year of implementation distributed systems has taught me, because many of the mistakes that I see people make with microservices are essentially a repetition of the mistakes that were made more than 10 years ago with layered SOA. We will look at the challenges experienced with poorly designed service boundaries, bad UI integration and what a solution to these challenges may look like in the form of logical services aligned with business capabilities, autonomous components and composite UI's
Should you be using an event driven architecture?Jeppe Cramon
What is an event-driven architecture, what can it do for your architecture, and is it a prerequisite for microservices?
In this talk, we'll see what events are and how they can solve many of the coupling and integration problems that you will experience in a distributed (micro)service landscape.
We'll get into the different usages for events and showcase them based on real world projects.
After this talk, you will know what events are, how they can be used and some of the requirements they put on your design and the way you thinking about software design.
Should you be using an event driven architecture - IDA IT (short version)Jeppe Cramon
What is an event-driven architecture, what can it do for your architecture, and is it a prerequisite for microservices?
In this talk, we'll see what events are and how they can solve many of the coupling and integration problems that you will experience in a distributed (micro)service landscape.
We'll get into the different usages for events and showcase them based on real world projects.
After this talk, you will know what events are, how they can be used and some of the requirements they put on your design and the way you thinking about software design.
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?
What 5 years of implementation microservices has taught meJeppe Cramon
This is a sum up of what 15 year of implementation distributed systems has taught me, because many of the mistakes that I see people make with microservices are essentially a repetition of the mistakes that were made more than 10 years ago with layered SOA. We will look at the challenges experienced with poorly designed service boundaries, bad UI integration and what a solution to these challenges may look like in the form of logical services aligned with business capabilities, autonomous components and composite UI's
Should you be using an event driven architecture?Jeppe Cramon
What is an event-driven architecture, what can it do for your architecture, and is it a prerequisite for microservices?
In this talk, we'll see what events are and how they can solve many of the coupling and integration problems that you will experience in a distributed (micro)service landscape.
We'll get into the different usages for events and showcase them based on real world projects.
After this talk, you will know what events are, how they can be used and some of the requirements they put on your design and the way you thinking about software design.
Should you be using an event driven architecture - IDA IT (short version)Jeppe Cramon
What is an event-driven architecture, what can it do for your architecture, and is it a prerequisite for microservices?
In this talk, we'll see what events are and how they can solve many of the coupling and integration problems that you will experience in a distributed (micro)service landscape.
We'll get into the different usages for events and showcase them based on real world projects.
After this talk, you will know what events are, how they can be used and some of the requirements they put on your design and the way you thinking about software design.
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?
Not all the WEB APIs are RESTful, some are just plain RPC.
REST is an architecture style.
The video attached to these slides.
https://www.youtube.com/watch?v=M28aBbtdWj4
Gabriele Pividori presents to us the importance of communication within Domain-Driven Design, how the Ubiquitous Language can aid our software designs and the value the Aggregate pattern can bring.
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.
A Context Map will visualize your system: cluttered models, too much or not enough communication, dependencies on other systems are just some of the insights you'll gain if your start using them
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.
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
Tonight I presented on Domain Driven Design to the Alt.Net group in Sydney at the invite of Richard Banks.
As a follow up, attached are the slides I used, feel free to distribute and use on the Creative Commons Licence
How Custom is your Org? CEER at Dreamforce 2019Steven Herod
We often hear the advice of 'Clicks, not Code' and '80% Config vs 20% Code'. Orgs are described, without a frame of reference as being 'very custom'. However, there is no generally accepted definition on how to calculate customization of an org. Assumptions about code brought from other platforms are being misapplied to Salesforce to the detriment of customers and end-users. This presentation suggests a framework called 'CEER (Config / Extend / Enhance / Replace). This framework breaks the dichotomy of code vs clicks and replaces it with an approach that reflects the true nature of a salesforce solution. It highlights low vs high-risk activities such as Custom Object vs Building a collaboration platform. It also allows you to understand how Managed Packages impact your solution. The result is the ability to describe your org in terms of real effort/outcome basis. Allow you to make statements like "30% of your overall solution and 70% of your effort was expending on replacing standard Salesforce functions."
https://www.salesforce.com/video/7810482/
An Introduction to Domain Driven Design in PHPChris Renner
We use PHP to solve problems. But as software projects grow and the business needs increase, how do we manage the complexity and still produce readable and maintainable code? Domain Driven Design is a set of concepts and practices that, when applied appropriately, help us manage complexity in large scale projects. In this talk, we will explore the broad points of DDD. I’ll also share tips, patterns and lessons-learned gained from my experiences building PHP software for complicated business processes.
Bring stories to life using BDD (Behaviour driven development)Srikanth Nutigattu
This slide talks about the basics of BDD, how it is useful for all stakeholder. And also introduces about Gerkin language and using Cucumber and Protractor to perform BDD to angular applications.
Not all the WEB APIs are RESTful, some are just plain RPC.
REST is an architecture style.
The video attached to these slides.
https://www.youtube.com/watch?v=M28aBbtdWj4
Gabriele Pividori presents to us the importance of communication within Domain-Driven Design, how the Ubiquitous Language can aid our software designs and the value the Aggregate pattern can bring.
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.
A Context Map will visualize your system: cluttered models, too much or not enough communication, dependencies on other systems are just some of the insights you'll gain if your start using them
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.
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
Tonight I presented on Domain Driven Design to the Alt.Net group in Sydney at the invite of Richard Banks.
As a follow up, attached are the slides I used, feel free to distribute and use on the Creative Commons Licence
How Custom is your Org? CEER at Dreamforce 2019Steven Herod
We often hear the advice of 'Clicks, not Code' and '80% Config vs 20% Code'. Orgs are described, without a frame of reference as being 'very custom'. However, there is no generally accepted definition on how to calculate customization of an org. Assumptions about code brought from other platforms are being misapplied to Salesforce to the detriment of customers and end-users. This presentation suggests a framework called 'CEER (Config / Extend / Enhance / Replace). This framework breaks the dichotomy of code vs clicks and replaces it with an approach that reflects the true nature of a salesforce solution. It highlights low vs high-risk activities such as Custom Object vs Building a collaboration platform. It also allows you to understand how Managed Packages impact your solution. The result is the ability to describe your org in terms of real effort/outcome basis. Allow you to make statements like "30% of your overall solution and 70% of your effort was expending on replacing standard Salesforce functions."
https://www.salesforce.com/video/7810482/
An Introduction to Domain Driven Design in PHPChris Renner
We use PHP to solve problems. But as software projects grow and the business needs increase, how do we manage the complexity and still produce readable and maintainable code? Domain Driven Design is a set of concepts and practices that, when applied appropriately, help us manage complexity in large scale projects. In this talk, we will explore the broad points of DDD. I’ll also share tips, patterns and lessons-learned gained from my experiences building PHP software for complicated business processes.
Bring stories to life using BDD (Behaviour driven development)Srikanth Nutigattu
This slide talks about the basics of BDD, how it is useful for all stakeholder. And also introduces about Gerkin language and using Cucumber and Protractor to perform BDD to angular applications.
Modelling a complex domain with Domain-Driven DesignNaeem Sarfraz
Domain-Driven Design is an approach to modelling business complexity explicitly in your software. This deck of slides runs through the key concepts focusing on both the strategic and tactical aspects of DDD.
Building Cloud-Native App Series - Part 1 of 11
Microservices Architecture Series
Design Thinking, Lean Startup, Agile (Kanban, Scrum),
User Stories, Domain-Driven Design
For a few decades, one of the most common approaches to software design is to first focus on the domain model (application layer), then persistence (data layer) and finally the user interface (presentation layer). But what are the pros and cons of this approach? Are there other alternatives? Are they viable? In this presentation, Sandro will be talking about different design biases and the impact they have. He will then focus on Outside-In Design, explaining how our domain model can emerge and evolve when driven by the needs of external systems or users, avoiding speculation and wasted effort.
https://www.youtube.com/watch?v=rbSDGr-_UwY
This video was recorded at SCLConf 2018, an annual conference for software professionals that care about their craft. Learn more about SCLConf at sc-london.com
Updated: Should you be using an Event Driven ArchitectureJeppe Cramon
What is an event-driven architecture, what can it do for your architecture, and is it a prerequisite for microservices?
In this talk, we'll see what events are and how they can solve many of the coupling and integration problems that you will experience in a distributed (micro)service landscape.
We'll get into the different usages for events and showcase them based on real world projects.
After this talk, you will know what events are, how they can be used and some of the requirements they put on your design and the way you thinking about software design.
Testing an onion architecture - done rightMichel Schudel
Hexagonal, or onion, architectures are perfect for separating domain logic from access to that logic, and resources the logic needs.
But how to test such an architecture?
In this presentation, you'll see a pragmatic yet robust approach to testing such an architecture, with a live coding demo using a Spring Boot application.
We'll find a correct balance between unit tests and IT tests. We'll look at different tools for IT tests, and we'll also take a look at granularity of unit tests: do you *really* need to test every class separately?
Business Event Driven Architecture & Governance in ActionHostedbyConfluent
"Event-Driven Architecture is the only way to achieve resilient scalable reactive systems. It enables loose coupling, drives autonomy for the dev teams, and is the key to digital business behaviour monitoring.
But how do you implement EDA the right way? And make sure that it keeps being implemented the right way?
At Current 2022 there was a talk from Confluent explaining the value of a COE (Center of Excellence).
However, in this talk, We’ll be sharing several experiences in setting up a COE for large industrial companies, insurance and logistic environments.
From setting up a strong foundation, defining event designs, best practices, and principles to the guidance of development teams. The COE brings business and IT together to ensure EDA is set-up and used correctly, but also to identify and capitalize on new opportunities that automatically arise from using EDA.
Using several real life experiences (AXA Belgium, Engie, Nike, ...)"
Defining work items is a challenge. We could argue that a work item is anything that is delivered to the customer.
As much as we've been trying and done some good work on defining user stories over the last decade it’s still a major source of confusion for a lot of projects.
Let’s try another way using examples or scenarios.
Autonomous microservices for a Financial SystemINPAY
There are many articles about microservices, but few cover how to apply Microservice principles to non-trivial domains. In this presentation, Jeppe will show how INPAY design highly autonomous microservices and composite applications. We will get into the underlying principles, such as how to discover service boundaries, how to communicate between services, what role does the UI play. Finally we will look at how services are implemented and supported by the infrastructure.
Keywords: DDD, Microservices, CQRS, Event Sourcing, Event Driven Architecture, Federated Bus, Composite UI
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.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...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.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
2. @jeppec
"I consider 'getting the boundaries
right' the single design decision
with the most significant impact
over the entire life of a software
project."
@ziobrando
8. @jeppec
If we primarily model around nouns/entities
we can easily violate the
Single Responsibility Principle
Where a change to requirements
is likely to require changes
to multiple entity classes
13. @jeppec
We need to shift focus from pure data
towards intent and process automation
This means a change from CRUD style application design,
where the process was implicit and stored in the minds of
the users
First I need to
enter the
employee in
this screen
Then I need to
press a button in
the user system
so they’re
properly created
And the I need
to add their
access card to
this screen and
press Activate
14. @jeppec
Task-based/Inductive UI
• Traditional CRUD UI is what I would call a WHAT UI
• Task based UI’s focuses on HOW the user wants to
use the application
• Guides users through the work process
• The UI becomes an intrinsic part of the design
• The UI design directly affects our commands and
thereby our transactional boundaries
15. @jeppec
We need to capture User Intent at the UI
CRUD style
Task based style
Intent
16. @jeppec
Capturing intent in the form of a Command
A Command is prescriptive of what should happen, and its primary goal is to
capture USER INTENT
A Command
supports a single usecase and
targets a single business object
within a single Transaction
Commands always carry a name in its imperative form:
• AcceptOrder
• ShipOrder
• CancelOrder
• ReimburseCustomer
• Etc.
“A command describes a Task that you want someone
else to carry out for you and where the recipient can
choose to reject the Command”
26. @jeppec
Business Capability alignment
“The advantage of business capabilities is their
remarkable level of stability. If we take a typical
insurance organisation, it will likely have sales,
marketing, policy administration, claims
management, risk assessment, billing, payments,
customer service, human resource management, rate
management, document management, channel
management, commissions management,
compliance, IT support and human task management
capabilities. In fact, any insurance organisation will
very likely have many of these capabilities.”
See http://bill-poole.blogspot.dk/2008/07/business-
capabilities.html
27. @jeppec
Business – IT alignment
• We want the Business and IT to speak the same Ubiquitous
language
• Want want our architecture to be aligned with the
business capabilities
• Because these capabilities are stable
28. @jeppec
Many perspectives on data
Online Retail System
Product
Unit Price
Promotional Price
Promotion End Date
Stock Keeping Unit (SKU)
Quantity On Hand (QOH)
Location Code
Price
Quantity Ordered
Name
The lifecycle of the data is VERY important!
Customer
Pricing
Inventory
Sales
Management Reporting
29. @jeppec
Smaller models & clear data ownership
Retail System
Pricing
Product
ProductID
Unit Price
Promotional
Price
…
Pricing
Inventory
Product
ProductID
SKU
QOH
Location Code
…
Inventory
Sales
Product
ProductID
Name
Description
Quantity
Ordered
…
Sales
Shared Entity identity
DDD:
Bounded
Context
Business
Capability
DDD:
Aggregate
30. @jeppec
Aggregates
Invoice
InvoiceLine
*
Account *
What:
• Cluster coherent Entities and Value
Objects, with complex associations into
Aggregates with well defined boundaries.
• Choose one entity to be root and control
access to objects inside the boundary
through the root.
Motivation:
Control invariants and consistency through the aggregate root.
Ensuring consistency & transactional boundaries for Distributed scenarios!
Root
*
*
31. @jeppec
Entities
Motivators:
Objects are defined by identity and NOT by their
attributes.
May have lifecycle, can change form by time and
context (A Person that becomes a father, who becomes
a grand father, etc.)
Focus is on Who and not on what!
Customer
- ID/Social Security Number : Number
32. @jeppec
Value Objects
Customer
- ID/Social Security Number : Number
Address
- street : String
- zipCode : String
1
Motivators:
Objects which Measures,
Quantifies or Describes a thing in
the domain. They’re immutable
and defined by their attributes
(not by their identity) and doesn’t
have a lifecycle.
Focus is on What and not on who!