SlideShare a Scribd company logo
DDD-rail Your Monorail
Breaking up the Rails monolith
with domain driven design
🚝💥🚀
Hi, I’m Andrew
Meet Delorean
“It’s like Uber, for time travel!”
🚗🚀
The situation
%💨😢😱😡
What happened?
In the beginning, there
was an app.
The business decides…
• Drivers deliver passengers from year A to
year B. 🚕⌛
💰😂
The business decides…
• Drivers deliver passengers from year A to
year B. 🚕⌛
• Passengers choose the type of Delorean
service they want. 🚕 🚗 🚐
💰💰💰😂📰
The business decides…
• Drivers deliver passengers from year A to
year B. 🚕⌛
• Passengers choose the type of Delorean
service they want. 🚕 🚗 🚐
• Time travel carpools! 🚕01
💰💰💰💰💰😂📰
The business decides…
• Drivers deliver passengers from year A to year B. 🚕⌛
• Passengers choose the type of Delorean service they
want. 🚕 🚗 🚐
• Time travel carpools! 🚕01
• DeloreanEATS: Customers order food, drivers pick
up from time period and deliver to customer time
period! 🚕🍔
💩😐📰
Hm.
💣 Regressions
The Payments team regresses
Trip while refactoring ServiceTier
The Restaurants team deploys a
new pricing algorithm that
regresses rideshare pricing
💣 Responsibilities?
The Mobile team requests a new
mobile login API, but which team
should implement it?
💣 Business won’t stop
Outsourced dev shop is rebuilding
the marketing home page and
needs a pricing API.
CEO wants to launch "Airbnb for
time travel” feature in, let’s say, 2
months!
Does this sound familiar?
There are deeper insights to be had
What is DDD?
A set of techniques to arrive at a
flexible design that cleanly maps
to the business model
Strong, expressive domain
models
There is no such thing as a
One True Perfect model
Embrace the chaos
Domain-Driven
Design: Eric Evans
Implementing Domain-
Driven Design: Vaughn
Vernon
💥 Let’s get designing!
Step 1: Visualize your domain models
Rails ERD
https://github.com/voormedia/rails-erd
Ruby gem to generate UML diagrams from
your ActiveRecord models
This helps you get the entire system into
your mind.
Print it out!
✏📎
Step 2: Find your core- and sub-domains
Concept: Core Domain
What a business does
Transportation Core Domain
Concept: Subdomains
A supporting unit within the
business
Rideshare Subdomain
Food Delivery Subdomain
Financial Transaction Subdomain
Identity and Access Subdomain
Ridesharing
Food Delivery
Financial
Transactions
Identity/
Access
Step 3: Get the team talking in the same
language
Concept: Ubiquitous Language
A defined language that is used
consistently across business and
technical contexts
Bring in the domain experts
A Driver picks up a Passenger
A Passenger requests a Pickup
An Owner drives a Vehicle
An Operator? drives a Vehicle
A User logs in and changes her Password
An Invoice is delivered to the Passenger
A Customer orders an item from a Menu,
which is picked up and delivered by the
Delivery Agent
Step 4: Make a glossary
Ridesharing
• Passenger: “…”
• Driver: “…”
• Trip: “…”
• Pickup: “…”
• Vehicle: “…”
• Vehicle Owner: “…”
Financial Transaction
• Invoice: “…”
• Order: “…”
• Payment: “…”
• Royalty: “…”
• Salary: “…”
Identity and Access
• User: “…”
• Secure password: “…”
• Role: “…”
Print ‘em out!
✏📎
Step 5: Draw out your software systems
(bounded contexts)
Concept: Bounded Contexts
A software system that defines the
applicability of a ubiquitous
language
FoodDeliveryService TripRoutingEngine
“menu” “trip”
“restaurant” “plan”
“delivery” “pickup”
“customer date” “destination”
Software systems are natural boundaries for
these linguistic terms
If a term leaks into a different software
system/bounded context, you have a smell
Ridesharing
Financial
Transactions
Identity/
Access
Food Delivery
DeloreanMonolith
StripeAPI
DeloreanMonolith
Ridesharing
Financial
Transactions
Identity/
Access
Stripe API
Food Delivery
DeloreanMonolith
Identity/
Access
Food Delivery
Driver
Routing
Service
Fraud
Detection
Service (etc)
DeloreanMonolith
Ridesharing
Financial
Transactions
Identity/
Access
Stripe API
Food Delivery
Step 6: Now add directional dependencies
DeloreanMonolith
Ridesharing
Financial
Transactions
Identity/
Access
Stripe API
Food Delivery
U
D
DeloreanMonolith
Identity/
Access
Food Delivery
Driver
Routing
Service
Fraud
Detection
Service (etc)
U
U
D
U
D U
D
This helps you see dependencies between
teams, where communication will be most
important.
Context Map: A tool to visualize how your
software systems relate to each other and
the domain(s)
Our goal is to map our bounded contexts
directly to our subdomains.
Ridesharing
Financial
Transactions
Identity/
Access
Stripe API
Food Delivery
Show me the code!
Tactic 1: Get the names right
Adjust your class and method names to
reflect the ubiquitous language
# old
User.without_drivers
# new
Passenger.hailing_drivers
# old
order.calculate_cost
# new
order.calculate_billing_total
Tactic 2: Namespace and
modulize your domains
Break Rails’ folder structure conventions
app/domains/financial
app/domains/financial/inflation_adjustment.rb
app/domains/financial/invoice.rb
app/domains/food_delivery
app/domains/food_delivery/menu.rb
app/domains/food_delivery/menu_item.rb
app/domains/food_delivery/menu_items_controller.rb
app/domains/food_delivery/menus_controller.rb
app/domains/identity
app/domains/identity/user.rb
app/domains/identity/users_controller.rb
app/domains/rideshare
app/domains/rideshare/driver.rb
app/domains/rideshare/passenger.rb
app/domains/rideshare/service_tier.rb
class Menu < ActiveRecord::Base
belongs_to :restaurant
end
module FoodDelivery
class Menu < ActiveRecord::Base
belongs_to :restaurant
end
end
class Trip < ActiveRecord::Base
belongs_to :service_tier
belongs_to :vehicle
end
module Rideshare
class Trip < ActiveRecord::Base
belongs_to :service_tier
belongs_to :vehicle
end
end
Domain code stays together
Tactic 3: Design with
Aggregate Roots
Aggregate: A collection of domain objects
that can be treated as a single unit
Use aggregates to model real-world entities
that belong together
Aggregate Root: An entity at the “top” of the
collection that can represent the whole
FoodDelivery aggregate root: Order
Food Delivery
A user adds a menu item to their cart
A User adds a MenuItem into their
ShoppingCart
module Financial
class ShoppingCart
def order
@order ||= FoodDelivery::Order.new
end
def amount
@order.menu_items.sum(&:cost) +
@order.menu_items.sum(&:tax_amount)
end
def add(item)
order.menu_items << item
end
def remove(item)
order.menu_items.delete(item); order.save
end
end
end
module FoodDelivery
class Order < ActiveRecord::Base
belongs_to :user
has_many :order_menu_items
has_many :menu_items, through: :order_menu_items
end
end
module FoodDelivery
class Order < ActiveRecord::Base
belongs_to :user
has_many :order_menu_items
has_many :menu_items, through: :order_menu_items
def total_cost
item_cost + tax_cost
end
def item_cost
menu_items.sum(&:cost)
end
def tax_cost
menu_items.sum(&:tax_amount)
end
def add_item!(menu_item)
menu_items << menu_item
end
def remove_item!(menu_item)
menu_items.delete(menu_item); save
end
end
end
module Financial
class ShoppingCart
def order
@order ||= FoodDelivery::Order.new
end
def amount
@order.total_cost
end
def add(item)
order.add_item!(item)
end
def remove(item)
order.remove_item!(item)
end
end
end
Calculation logic kept in
FoodDelivery domain
Implementation-
agnostic
The root items of these aggregates are the
only entities that external callers may fetch
Ridesharing
Financial Transactions
Identity/Access
Food Delivery
Building good interfaces for a service
oriented future!
Tactic 4: Break database
joins between domains
`has_many`-itis!
module Rideshare
class Trip < ActiveRecord::Base
belongs_to :service_tier
has_many :trip_pool_trips
has_one :trip_pool, through: :trip_pool_trips
belongs_to :driver, foreign_key: :driver_id, class_name: I
belongs_to :passenger, foreign_key: :passenger_id, class_n
belongs_to :vehicle
belongs_to :order, class_name: FoodDelivery::Order
has_one :payment
end
These tend to happen in your God Objects
module Rideshare
class Trip < ActiveRecord::Base
belongs_to :service_tier
has_many :trip_pool_trips
has_one :trip_pool, through: :trip_pool_trips
belongs_to :driver, foreign_key: :driver_id, class_name: I
belongs_to :passenger, foreign_key: :passenger_id, class_n
belongs_to :vehicle
belongs_to :order, class_name: FoodDelivery::Order
has_one :payment
end
module Rideshare
class Trip < ActiveRecord::Base
# belongs_to :order, class_name: FoodDelivery::Order
def order
FoodDeliveryAdapter.new.order_from_trip(self)
end
end
end
module Rideshare
class FoodDeliveryAdapter
def order_from_trip(trip)
FoodDelivery::Order.find_by(trip_id: trip.id)
end
end
end
Decoupling domains now will ease your
architectural transitions later
You can do this all in small
steps!
Toward a distributed
architecture
Namespaced, Isolated Modules to
Rails Engines
Component-Based Rails
Engines (Stephan Hagemann)
Rails engines to a remote (micro-)service
Good architecture goes a very long way.
To recap🚕 💨
Drew things on a wall
Came up with a language
Moved code around
Team is on the same page
Big idea: Your software speaks the
same language as your domain
experts
Big idea: Bounded contexts are separators
for linguistic drivers. Keep your language
consistent in one and only one system
Big idea: Domain code
should live together
Big idea: Adapters between
domains enforce domain purity
Big idea: Incremental
changes
Thanks!
Sample code: https://github.com/andrewhao/delorean
Slides: https://github.com/andrewhao/dddrail-talk
Twitter @andrewhao
Github @andrewhao
8

More Related Content

Similar to DDD-rail Your Monorail

Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...
Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...
Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...
Mozaic Works
 
Re-engineering Technology to break barriers with Business
Re-engineering Technology to break barriers with BusinessRe-engineering Technology to break barriers with Business
Re-engineering Technology to break barriers with Business
XPDays
 
2. Product Design
2. Product Design2. Product Design
2. Product Design
Benjamin Hülsen
 
Vinod kumar maurya (1)
Vinod kumar maurya (1)Vinod kumar maurya (1)
Vinod kumar maurya (1)
vinodmaurya
 
chetan_ahire_resume
chetan_ahire_resumechetan_ahire_resume
chetan_ahire_resumeClover00
 
Daffodil corporate Web maintenance services
Daffodil corporate Web maintenance servicesDaffodil corporate Web maintenance services
Daffodil corporate Web maintenance services
Ashok Surendran
 
Building Beautiful Systems with Phoenix contexts and Domain-Driven Design
Building Beautiful Systems with Phoenix contexts and Domain-Driven DesignBuilding Beautiful Systems with Phoenix contexts and Domain-Driven Design
Building Beautiful Systems with Phoenix contexts and Domain-Driven Design
Andrew Hao
 
Beyond MVC: from Model to Domain
Beyond MVC: from Model to DomainBeyond MVC: from Model to Domain
Beyond MVC: from Model to Domain
Jeremy Cook
 
Car Care.pptx
Car Care.pptxCar Care.pptx
Car Care.pptx
OmarIsmail94
 
E trackoncloud fleet
E trackoncloud fleetE trackoncloud fleet
E trackoncloud fleet
Gopinath Soundarrajan
 
The Role of Mobility in Logistics and Fleet Management Industry
The Role of Mobility in Logistics and Fleet Management IndustryThe Role of Mobility in Logistics and Fleet Management Industry
The Role of Mobility in Logistics and Fleet Management Industry
Softweb Solutions
 
How to Choose The Best Last-Mile Delivery Software?
How to Choose The Best Last-Mile Delivery Software?How to Choose The Best Last-Mile Delivery Software?
How to Choose The Best Last-Mile Delivery Software?
Trackobit
 
Where can I find a taxi application developer_.pdf
Where can I find a taxi application developer_.pdfWhere can I find a taxi application developer_.pdf
Where can I find a taxi application developer_.pdf
Riya Sai
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
Chris Richardson
 
Developing Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris RichardsonDeveloping Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris Richardson
JAXLondon2014
 
Deliveroo - Victoria University - 2017
Deliveroo - Victoria University - 2017Deliveroo - Victoria University - 2017
Deliveroo - Victoria University - 2017
JErickPPTs
 
Where can I find a company to build an app like Uber_.pptx
Where can I find a company to build an app like Uber_.pptxWhere can I find a company to build an app like Uber_.pptx
Where can I find a company to build an app like Uber_.pptx
Riya Sai
 

Similar to DDD-rail Your Monorail (20)

Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...
Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...
Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...
 
Re-engineering Technology to break barriers with Business
Re-engineering Technology to break barriers with BusinessRe-engineering Technology to break barriers with Business
Re-engineering Technology to break barriers with Business
 
2. Product Design
2. Product Design2. Product Design
2. Product Design
 
Vinod kumar maurya (1)
Vinod kumar maurya (1)Vinod kumar maurya (1)
Vinod kumar maurya (1)
 
chetan_ahire_resume
chetan_ahire_resumechetan_ahire_resume
chetan_ahire_resume
 
Daffodil corporate Web maintenance services
Daffodil corporate Web maintenance servicesDaffodil corporate Web maintenance services
Daffodil corporate Web maintenance services
 
Building Beautiful Systems with Phoenix contexts and Domain-Driven Design
Building Beautiful Systems with Phoenix contexts and Domain-Driven DesignBuilding Beautiful Systems with Phoenix contexts and Domain-Driven Design
Building Beautiful Systems with Phoenix contexts and Domain-Driven Design
 
Beyond MVC: from Model to Domain
Beyond MVC: from Model to DomainBeyond MVC: from Model to Domain
Beyond MVC: from Model to Domain
 
Car Care.pptx
Car Care.pptxCar Care.pptx
Car Care.pptx
 
Rhodes Overview
Rhodes OverviewRhodes Overview
Rhodes Overview
 
E trackoncloud fleet
E trackoncloud fleetE trackoncloud fleet
E trackoncloud fleet
 
The Role of Mobility in Logistics and Fleet Management Industry
The Role of Mobility in Logistics and Fleet Management IndustryThe Role of Mobility in Logistics and Fleet Management Industry
The Role of Mobility in Logistics and Fleet Management Industry
 
WordpressDeveloper.docx
WordpressDeveloper.docxWordpressDeveloper.docx
WordpressDeveloper.docx
 
How to Choose The Best Last-Mile Delivery Software?
How to Choose The Best Last-Mile Delivery Software?How to Choose The Best Last-Mile Delivery Software?
How to Choose The Best Last-Mile Delivery Software?
 
Where can I find a taxi application developer_.pdf
Where can I find a taxi application developer_.pdfWhere can I find a taxi application developer_.pdf
Where can I find a taxi application developer_.pdf
 
#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture#JaxLondon keynote: Developing applications with a microservice architecture
#JaxLondon keynote: Developing applications with a microservice architecture
 
Developing Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris RichardsonDeveloping Applications with a Micro Service Architecture - Chris Richardson
Developing Applications with a Micro Service Architecture - Chris Richardson
 
Deliveroo - Victoria University - 2017
Deliveroo - Victoria University - 2017Deliveroo - Victoria University - 2017
Deliveroo - Victoria University - 2017
 
Where can I find a company to build an app like Uber_.pptx
Where can I find a company to build an app like Uber_.pptxWhere can I find a company to build an app like Uber_.pptx
Where can I find a company to build an app like Uber_.pptx
 
Sybrant overview
Sybrant overviewSybrant overview
Sybrant overview
 

Recently uploaded

UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
UiPathCommunity
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 

Recently uploaded (20)

UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 

DDD-rail Your Monorail