SlideShare a Scribd company logo
Events, Picos, and 
Microservices 
Phillip J. Windley, PhD 
Enterprise Architecture, BYU 
CTO, Kynetx, Inc. 
@windley
This APIs in this 
talk aren’t 
RESTful
Internet of Things
The Internet of Things will 
lead to a computing 
experience that is immersive 
& pervasive.
Ambient Computing
vs
The Current #IoT Model 
Won’t Scale
Me
GE
Internet 
of 
My Things 
Me 
GE
The Internet of My Things
The Internet of My Things 
leads to 
The API of Me
Events vs Requests
“this happened” vs “do this”
Event System Properties 
Events are autonomous 
Event-driven system are more loosely coupled 
Downstream (receiver) driven flow control 
Near real-time propagation
Fuse is Three Things 
http://joinfuse.com
picos
Picos are online computers 
Identity—they represent a specific entity 
Storage—they persistently encapsulate both structured 
and unstructured data 
Open event network—they respond to events 
Processing—they run applications autonomously 
Event Channels—they have connections to other picos 
Services—The provide a consistent set of services 
APIs—they provide access to and access other online 
services
Owner 
Pico 
Fleet Pico 
Vehicle 
Pico 
Vehicle 
Pico 
Vehicle 
Pico
Web 
Application 
Application 
Data 
Browser
Web 
Application 
Browser 
Application 
Data
Vehicle's 
Pico 
iCalendar 
Mobile 
Web
Rather than a model where a system 
presents an API for a collection of 
resources….
Rather than a model where a system 
presents an API for a collection of 
resources…. 
Picos present a model wherein each 
pico presents it’s own, customizable 
API
Phil's Pico 
owner
Phil's Pico 
owner 
Lynne's Pico 
owner
Phil's Pico Tom's Pico 
owner 
Lynne's Pico 
owner
Phil's Pico Tom's Pico 
owner 
Lynne's Pico 
owner
Phil's Pico Tom's Pico 
owner 
Lynne's Pico 
owner
Phil's Pico Tom's Pico 
owner 
Lynne's Pico 
owner borrower
Phil's Pico
Phil's Pico
Picos Support A Familiar Model 
Kynetx Rules Engine 
Other 
Data 
Sources 
APIs 
Web 
Services 
Rulesets 
Persistent 
Data 
APIs 
container
Picos Support A Familiar Model 
Persistent Compute Object object 
Kynetx Rules Engine 
Other 
Data 
Sources 
APIs 
Web 
Services 
Rulesets 
Persistent 
Data 
APIs 
container
Picos Support A Familiar Model 
Persistent Compute Object object 
Kynetx Rules Engine 
Other 
Data 
Sources 
APIs 
Web 
Services 
Rulesets 
Persistent 
Data 
APIs 
container 
CloudOS 
Configuration 
Management 
CloudOS 
Service 
Notification 
Service 
Personal Data 
Service 
UI Support 
File 
Social 
Social 
Fuse 
Library 
Guard 
Tour 
Library 
libraries
Picos Support A Familiar Model 
Kynetx Rules Engine 
Other 
Data 
Sources 
Web 
Services 
APIs 
Rulesets 
Persistent 
Data 
APIs 
container 
Persistent Compute Object object 
Forevr.us 
(contact) 
Timeline 
(social) 
Vehicle 
Manangement 
To Do & 
Reminders 
Intentcasting 
Home 
Management 
Fuse 
Guard 
Tour 
applications 
CloudOS 
Personal Data 
Service 
Configuration 
Management 
CloudOS 
Service 
Notification 
Service 
UI Support 
File 
Social 
Social 
Fuse 
Library 
Guard 
Tour 
Library 
libraries
Picos Are Decentralized & Networked 
pico 
pico 
Pico 
Space 
Hosting 
Space 
Hosting 
Company A 
Hosting 
Company B 
Self 
Hosted 
pico 
pico 
pico 
pico 
pico 
pico 
pico 
KRE KRE KRE Pico 
Containers
Built on open standards 
Built on open source
But it’s not just about 
manufactured things...
Institution 
Managers 
Tour 
Index 
Report 
"1" 
Location 
Index 
Report 
Index 
Guard 
"Frank" 
Tour 
"LUFX" 
Tour 
"KUFF" 
Location 
"R7RK" 
Location 
"G5YH" 
Report 
"current" 
Location 
"T67G" 
Guards 
Subscriptions 
permanent 
temporary 
This can get complex… 
Report 
R"2e"port 
R"2e"port 
R"2e"ports 
Tours 
Tours 
Tours 
Tours 
Locations 
Locations 
Locations 
Locations
Picos Use an Event Query API 
functions return results based 
on persistent data 
pico 
functions 
rules 
persistent 
storage 
User Interface 
name 
email 
phone 
UI updates presentation 
Done or Cancel 
using query API 
query API 
event API 
user makes change in UI 
resulting in an event 
rules validate and process event, 
often updating model
Programming Model 
Program in any language you like 
OAuth access to pico 
Pico provides 
user data 
processing 
API and inter-pico communications
Microservices 
Organized around a single business 
capability 
Small, generally less than 1000 lines and 
code and usually much smaller 
Event-based and asynchronous 
Run in their own process 
Independently deployable 
Decentralized data storage
carvoyant: 
numeric_data_key 
vehicle event bus
carvoyant: 
numeric_data_key 
vehicle event bus 
fuel level 
low
carvoyant: 
numeric_data_key 
fuse: 
update_fuel_level 
vehicle event bus 
fuel level 
low
carvoyant: 
numeric_data_key 
fuse: 
update_fuel_level 
vehicle event bus 
fuel level 
low 
fuse: 
new_alert 
create 
alert
carvoyant: 
numeric_data_key 
fuse: 
update_fuel_level 
vehicle event bus 
fuel level 
low 
fuse: 
new_alert 
create 
alert 
notification: 
status 
send 
notification
carvoyant: 
numeric_data_key 
fuse: 
update_fuel_level 
vehicle event bus 
fuel level 
low 
fuse: 
new_alert 
create 
alert 
record 
new fuel 
notification: 
status 
send 
notification
carvoyant: 
numeric_data_key 
fuse: 
update_fuel_level 
vehicle event bus 
fuel level 
low 
fuse: 
new_alert 
create 
alert 
IFTTT 
record 
new fuel 
notification: 
status 
send 
notification
carvoyant: 
numeric_data_key 
fuse: 
update_fuel_level 
save trip IFTTT 
vehicle event bus 
fuel level 
low 
fuse: 
new_alert 
create 
alert 
record 
new fuel 
notification: 
status 
send 
notification
Healing Subscriptions 
rule check_subscriptions { 
select when pds profile_updated 
pre { 
vid = carvoyant:vehicle_id(); 
my_subs = carvoyant:getSubscription(vid); 
should_have = required_subscription_list.length(); 
} 
if(my_subs.length() < should_have) then 
send_directive("not enough subscriptions") 
fired { 
log ">>>> vehicle #{vid} needs subscription check"; 
raise fuse event need_initial_carvoyant_subscriptions; 
} 
}
Healing Subscriptions 
rule check_subscriptions { 
select when pds profile_updated 
pre { 
vid = carvoyant:vehicle_id(); 
my_subs = carvoyant:getSubscription(vid); 
should_have = required_subscription_list.length(); 
} 
if(my_subs.length() < should_have) then 
send_directive("not enough subscriptions") 
fired { 
log ">>>> vehicle #{vid} needs subscription check"; 
raise fuse event need_initial_carvoyant_subscriptions; 
} 
}
Healing Subscriptions 
rule check_subscriptions { 
select when pds profile_updated 
pre { 
vid = carvoyant:vehicle_id(); 
my_subs = carvoyant:getSubscription(vid); 
should_have = required_subscription_list.length(); 
} 
if(my_subs.length() < should_have) then 
send_directive("not enough subscriptions") 
fired { 
log ">>>> vehicle #{vid} needs subscription check"; 
raise fuse event need_initial_carvoyant_subscriptions; 
} 
}
Healing Subscriptions 
rule check_subscriptions { 
select when pds profile_updated 
pre { 
vid = carvoyant:vehicle_id(); 
my_subs = carvoyant:getSubscription(vid); 
should_have = required_subscription_list.length(); 
} 
if(my_subs.length() < should_have) then 
send_directive("not enough subscriptions") 
fired { 
log ">>>> vehicle #{vid} needs subscription check"; 
raise fuse event need_initial_carvoyant_subscriptions; 
} 
}
Healing Subscriptions 
rule check_subscriptions { 
select when pds profile_updated 
pre { 
vid = carvoyant:vehicle_id(); 
my_subs = carvoyant:getSubscription(vid); 
should_have = required_subscription_list.length(); 
} 
if(my_subs.length() < should_have) then 
send_directive("not enough subscriptions") 
fired { 
log ">>>> vehicle #{vid} needs subscription check"; 
raise fuse event need_initial_carvoyant_subscriptions; 
} 
}
KRL 
Rules 
Runs in picos 
Built for microservices 
Complex event expressions 
Persistent variables 
Side-effects are quarantined
Developer Tools
Self Healing
f(f(x)) = f(x) 
Idempotent
Asynchrony
Accretive 
Systems
Why do this? 
Orthogonality and modularity are 
powerful: network effects! 
Loose coupling 
Simple services are easier to get right 
More private
My book on 
event 
programming
http://joinfuse.com 
Internet Identity 
Workshop
Events, Picos, and 
Microservices 
! 
Contact info: 
Phil Windley 
pjw@kynetx.com 
www.windley.com 
@windley

More Related Content

What's hot

Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)
Chris Richardson
 
Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)
Chris Richardson
 
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Chris Richardson
 
#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
 
Introduction to MicroServices (Oakjug)
Introduction to MicroServices (Oakjug)Introduction to MicroServices (Oakjug)
Introduction to MicroServices (Oakjug)
Chris Richardson
 
OReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the coreOReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the core
Chris Richardson
 
Lighning Talk: Event-Driven architecture for microservices
Lighning Talk: Event-Driven architecture for microservicesLighning Talk: Event-Driven architecture for microservices
Lighning Talk: Event-Driven architecture for microservices
Martins Sipenko
 
NodeJS: the good parts? A skeptic’s view (jax jax2013)
NodeJS: the good parts? A skeptic’s view (jax jax2013)NodeJS: the good parts? A skeptic’s view (jax jax2013)
NodeJS: the good parts? A skeptic’s view (jax jax2013)
Chris Richardson
 
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Chris Richardson
 
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
Chris Richardson
 
Going Serverless with CQRS on AWS
Going Serverless with CQRS on AWSGoing Serverless with CQRS on AWS
Going Serverless with CQRS on AWS
Anton Udovychenko
 
Microservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event SourcingMicroservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event Sourcing
Ben Wilcock
 
Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)
Chris Richardson
 
Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...
Chris Richardson
 
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...#hacksummit 2016 - event-driven microservices – Events on the outside, on the...
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...
Chris Richardson
 
Gluecon: Using sagas to maintain data consistency in a microservice architecture
Gluecon: Using sagas to maintain data consistency in a microservice architectureGluecon: Using sagas to maintain data consistency in a microservice architecture
Gluecon: Using sagas to maintain data consistency in a microservice architecture
Chris Richardson
 
QConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
QConPlus 2021: Minimizing Design Time Coupling in a Microservice ArchitectureQConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
QConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
Chris Richardson
 
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Chris Richardson
 
Oracle Code One: Events and commands: developing asynchronous microservices
Oracle Code One: Events and commands: developing asynchronous microservicesOracle Code One: Events and commands: developing asynchronous microservices
Oracle Code One: Events and commands: developing asynchronous microservices
Chris Richardson
 
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with SagasJavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
Chris Richardson
 

What's hot (20)

Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)Developing functional domain models with event sourcing (oakjug, sfscala)
Developing functional domain models with event sourcing (oakjug, sfscala)
 
Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)
 
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
Building and deploying microservices with event sourcing, CQRS and Docker (Ha...
 
#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
 
Introduction to MicroServices (Oakjug)
Introduction to MicroServices (Oakjug)Introduction to MicroServices (Oakjug)
Introduction to MicroServices (Oakjug)
 
OReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the coreOReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the core
 
Lighning Talk: Event-Driven architecture for microservices
Lighning Talk: Event-Driven architecture for microservicesLighning Talk: Event-Driven architecture for microservices
Lighning Talk: Event-Driven architecture for microservices
 
NodeJS: the good parts? A skeptic’s view (jax jax2013)
NodeJS: the good parts? A skeptic’s view (jax jax2013)NodeJS: the good parts? A skeptic’s view (jax jax2013)
NodeJS: the good parts? A skeptic’s view (jax jax2013)
 
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
Developing Event-driven Microservices with Event Sourcing & CQRS (gotoams)
 
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
Decompose that WAR? A pattern language for microservices (@QCON @QCONSP)
 
Going Serverless with CQRS on AWS
Going Serverless with CQRS on AWSGoing Serverless with CQRS on AWS
Going Serverless with CQRS on AWS
 
Microservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event SourcingMicroservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event Sourcing
 
Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)Microservices in Java and Scala (sfscala)
Microservices in Java and Scala (sfscala)
 
Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...Developing event-driven microservices with event sourcing and CQRS (london Ja...
Developing event-driven microservices with event sourcing and CQRS (london Ja...
 
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...#hacksummit 2016 - event-driven microservices – Events on the outside, on the...
#hacksummit 2016 - event-driven microservices – Events on the outside, on the...
 
Gluecon: Using sagas to maintain data consistency in a microservice architecture
Gluecon: Using sagas to maintain data consistency in a microservice architectureGluecon: Using sagas to maintain data consistency in a microservice architecture
Gluecon: Using sagas to maintain data consistency in a microservice architecture
 
QConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
QConPlus 2021: Minimizing Design Time Coupling in a Microservice ArchitectureQConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
QConPlus 2021: Minimizing Design Time Coupling in a Microservice Architecture
 
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
 
Oracle Code One: Events and commands: developing asynchronous microservices
Oracle Code One: Events and commands: developing asynchronous microservicesOracle Code One: Events and commands: developing asynchronous microservices
Oracle Code One: Events and commands: developing asynchronous microservices
 
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with SagasJavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
JavaOne2017: ACID Is So Yesterday: Maintaining Data Consistency with Sagas
 

Viewers also liked

RESS - Responsive Design + Serverside Components (JavaZone 2012)
RESS - Responsive Design + Serverside Components (JavaZone 2012)RESS - Responsive Design + Serverside Components (JavaZone 2012)
RESS - Responsive Design + Serverside Components (JavaZone 2012)
Anders Andersen
 
Events & Microservices
Events & MicroservicesEvents & Microservices
Events & Microservices
Yamen Sader
 
Effective Microservices Design using Events and Event Sourcing
Effective Microservices Design using Events and Event SourcingEffective Microservices Design using Events and Event Sourcing
Effective Microservices Design using Events and Event Sourcing
David Dawson
 
A Microservices Reference Architecture
A Microservices Reference ArchitectureA Microservices Reference Architecture
A Microservices Reference Architecture
Yamen Sader
 
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
Thoughtworks
 
Devoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with KafkaDevoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with Kafka
László-Róbert Albert
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
Eberhard Wolff
 
Microservices for a Streaming World
Microservices for a Streaming WorldMicroservices for a Streaming World
Microservices for a Streaming World
Ben Stopford
 

Viewers also liked (8)

RESS - Responsive Design + Serverside Components (JavaZone 2012)
RESS - Responsive Design + Serverside Components (JavaZone 2012)RESS - Responsive Design + Serverside Components (JavaZone 2012)
RESS - Responsive Design + Serverside Components (JavaZone 2012)
 
Events & Microservices
Events & MicroservicesEvents & Microservices
Events & Microservices
 
Effective Microservices Design using Events and Event Sourcing
Effective Microservices Design using Events and Event SourcingEffective Microservices Design using Events and Event Sourcing
Effective Microservices Design using Events and Event Sourcing
 
A Microservices Reference Architecture
A Microservices Reference ArchitectureA Microservices Reference Architecture
A Microservices Reference Architecture
 
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
 
Devoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with KafkaDevoxx Morocco 2016 - Microservices with Kafka
Devoxx Morocco 2016 - Microservices with Kafka
 
Data Architecture not Just for Microservices
Data Architecture not Just for MicroservicesData Architecture not Just for Microservices
Data Architecture not Just for Microservices
 
Microservices for a Streaming World
Microservices for a Streaming WorldMicroservices for a Streaming World
Microservices for a Streaming World
 

Similar to Events, Picos, and Microservices

Picos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting ThingsPicos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting Things
Phil Windley
 
Events, Picos, and Microservices
Events, Picos, and MicroservicesEvents, Picos, and Microservices
Events, Picos, and Microservices
Phil Windley
 
Building event-driven Microservices with Kafka Ecosystem
Building event-driven Microservices with Kafka EcosystemBuilding event-driven Microservices with Kafka Ecosystem
Building event-driven Microservices with Kafka Ecosystem
Guido Schmutz
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
Salesforce Developers
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
Inho Kang
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
Oracle Korea
 
Microservices with Kafka Ecosystem
Microservices with Kafka EcosystemMicroservices with Kafka Ecosystem
Microservices with Kafka Ecosystem
Guido Schmutz
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
Guido Schmutz
 
Event Driven Streaming Analytics - Demostration on Architecture of IoT
Event Driven Streaming Analytics - Demostration on Architecture of IoTEvent Driven Streaming Analytics - Demostration on Architecture of IoT
Event Driven Streaming Analytics - Demostration on Architecture of IoT
Lei Xu
 
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
Amazon Web Services Korea
 
PDC Highlights
PDC HighlightsPDC Highlights
PDC Highlights
MS Innovation Days
 
Event-Based API Patterns and Practices
Event-Based API Patterns and PracticesEvent-Based API Patterns and Practices
Event-Based API Patterns and Practices
LaunchAny
 
Building Event-Driven (Micro)Services with Apache Kafka
Building Event-Driven (Micro)Services with Apache KafkaBuilding Event-Driven (Micro)Services with Apache Kafka
Building Event-Driven (Micro)Services with Apache Kafka
Guido Schmutz
 
Cloud to hybrid edge cloud evolution Jun112020.pptx
Cloud to hybrid edge cloud evolution Jun112020.pptxCloud to hybrid edge cloud evolution Jun112020.pptx
Cloud to hybrid edge cloud evolution Jun112020.pptx
Michel Burger
 
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventPros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Sudhir Tonse
 
Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...
Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...
Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...
Mike Walker
 
Event Mesh Presentation at Gartner AADI Mumbai
Event Mesh Presentation at Gartner AADI MumbaiEvent Mesh Presentation at Gartner AADI Mumbai
Event Mesh Presentation at Gartner AADI Mumbai
Solace
 
2019 devoxx - apis, microservices, et le service mesh
2019 devoxx - apis, microservices, et le service mesh2019 devoxx - apis, microservices, et le service mesh
2019 devoxx - apis, microservices, et le service mesh
Joel Gauci
 
MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and CairngormMAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
Xavier Agnetti
 
apidays LIVE JAKARTA - Event Driven APIs by Phil Scanlon
apidays LIVE JAKARTA - Event Driven APIs by Phil Scanlonapidays LIVE JAKARTA - Event Driven APIs by Phil Scanlon
apidays LIVE JAKARTA - Event Driven APIs by Phil Scanlon
apidays
 

Similar to Events, Picos, and Microservices (20)

Picos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting ThingsPicos, CloudOS, and Connecting Things
Picos, CloudOS, and Connecting Things
 
Events, Picos, and Microservices
Events, Picos, and MicroservicesEvents, Picos, and Microservices
Events, Picos, and Microservices
 
Building event-driven Microservices with Kafka Ecosystem
Building event-driven Microservices with Kafka EcosystemBuilding event-driven Microservices with Kafka Ecosystem
Building event-driven Microservices with Kafka Ecosystem
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
 
Microservices with Kafka Ecosystem
Microservices with Kafka EcosystemMicroservices with Kafka Ecosystem
Microservices with Kafka Ecosystem
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
Event Driven Streaming Analytics - Demostration on Architecture of IoT
Event Driven Streaming Analytics - Demostration on Architecture of IoTEvent Driven Streaming Analytics - Demostration on Architecture of IoT
Event Driven Streaming Analytics - Demostration on Architecture of IoT
 
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
 
PDC Highlights
PDC HighlightsPDC Highlights
PDC Highlights
 
Event-Based API Patterns and Practices
Event-Based API Patterns and PracticesEvent-Based API Patterns and Practices
Event-Based API Patterns and Practices
 
Building Event-Driven (Micro)Services with Apache Kafka
Building Event-Driven (Micro)Services with Apache KafkaBuilding Event-Driven (Micro)Services with Apache Kafka
Building Event-Driven (Micro)Services with Apache Kafka
 
Cloud to hybrid edge cloud evolution Jun112020.pptx
Cloud to hybrid edge cloud evolution Jun112020.pptxCloud to hybrid edge cloud evolution Jun112020.pptx
Cloud to hybrid edge cloud evolution Jun112020.pptx
 
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInventPros and Cons of a MicroServices Architecture talk at AWS ReInvent
Pros and Cons of a MicroServices Architecture talk at AWS ReInvent
 
Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...
Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...
Microsoft Insurance Solutions Keynote Presentation at the Financial Services ...
 
Event Mesh Presentation at Gartner AADI Mumbai
Event Mesh Presentation at Gartner AADI MumbaiEvent Mesh Presentation at Gartner AADI Mumbai
Event Mesh Presentation at Gartner AADI Mumbai
 
2019 devoxx - apis, microservices, et le service mesh
2019 devoxx - apis, microservices, et le service mesh2019 devoxx - apis, microservices, et le service mesh
2019 devoxx - apis, microservices, et le service mesh
 
MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and CairngormMAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
 
apidays LIVE JAKARTA - Event Driven APIs by Phil Scanlon
apidays LIVE JAKARTA - Event Driven APIs by Phil Scanlonapidays LIVE JAKARTA - Event Driven APIs by Phil Scanlon
apidays LIVE JAKARTA - Event Driven APIs by Phil Scanlon
 

More from Phil Windley

Trust, Blockchains, and Self-Soveriegn Identity
Trust, Blockchains, and Self-Soveriegn IdentityTrust, Blockchains, and Self-Soveriegn Identity
Trust, Blockchains, and Self-Soveriegn Identity
Phil Windley
 
A University API
A University APIA University API
A University API
Phil Windley
 
Rule Language for IoT
Rule Language for IoTRule Language for IoT
Rule Language for IoT
Phil Windley
 
Relationships: Modeling the Vehicle Ecosystem with Fuse
Relationships: Modeling the Vehicle Ecosystem with FuseRelationships: Modeling the Vehicle Ecosystem with Fuse
Relationships: Modeling the Vehicle Ecosystem with Fuse
Phil Windley
 
Fuse 2
Fuse 2Fuse 2
Fuse 2
Phil Windley
 
Connecting Things
Connecting ThingsConnecting Things
Connecting Things
Phil Windley
 
Persistent Compute Objects and the Fabric of Cyberspace
Persistent Compute Objects and the Fabric of CyberspacePersistent Compute Objects and the Fabric of Cyberspace
Persistent Compute Objects and the Fabric of Cyberspace
Phil Windley
 
Persistent Compute Objects - Picos
Persistent Compute Objects - PicosPersistent Compute Objects - Picos
Persistent Compute Objects - Picos
Phil Windley
 
Fuse Technical Presentation
Fuse Technical PresentationFuse Technical Presentation
Fuse Technical Presentation
Phil Windley
 
Personal Cloud Application Architectures
Personal Cloud Application ArchitecturesPersonal Cloud Application Architectures
Personal Cloud Application Architectures
Phil Windley
 
Why Personal Clouds
Why Personal CloudsWhy Personal Clouds
Why Personal Clouds
Phil Windley
 
Personal Cloud Operating Systems
Personal Cloud Operating SystemsPersonal Cloud Operating Systems
Personal Cloud Operating Systems
Phil Windley
 
Introducing Personal Event Networks
Introducing Personal Event NetworksIntroducing Personal Event Networks
Introducing Personal Event Networks
Phil Windley
 
The Live Web #SCITDA11 Keynote
The Live Web #SCITDA11 KeynoteThe Live Web #SCITDA11 Keynote
The Live Web #SCITDA11 Keynote
Phil Windley
 
Shaping strategies and Startups
Shaping strategies and StartupsShaping strategies and Startups
Shaping strategies and Startups
Phil Windley
 
Shaping Strategies and the Live Web - Kynetx Impact 2011
Shaping Strategies and the Live Web - Kynetx Impact 2011Shaping Strategies and the Live Web - Kynetx Impact 2011
Shaping Strategies and the Live Web - Kynetx Impact 2011
Phil Windley
 
The Evented Web Makes Users Happy
The Evented Web Makes Users HappyThe Evented Web Makes Users Happy
The Evented Web Makes Users Happy
Phil Windley
 
A Programming Layer for the Internet from Kynetx Impact 2010
A Programming Layer for the Internet from Kynetx Impact 2010A Programming Layer for the Internet from Kynetx Impact 2010
A Programming Layer for the Internet from Kynetx Impact 2010
Phil Windley
 
Using Puppet and Cobbler to Automate Your Infrastructure
Using Puppet and Cobbler to Automate Your InfrastructureUsing Puppet and Cobbler to Automate Your Infrastructure
Using Puppet and Cobbler to Automate Your Infrastructure
Phil Windley
 
Using Apache as an Application Server
Using Apache as an Application ServerUsing Apache as an Application Server
Using Apache as an Application Server
Phil Windley
 

More from Phil Windley (20)

Trust, Blockchains, and Self-Soveriegn Identity
Trust, Blockchains, and Self-Soveriegn IdentityTrust, Blockchains, and Self-Soveriegn Identity
Trust, Blockchains, and Self-Soveriegn Identity
 
A University API
A University APIA University API
A University API
 
Rule Language for IoT
Rule Language for IoTRule Language for IoT
Rule Language for IoT
 
Relationships: Modeling the Vehicle Ecosystem with Fuse
Relationships: Modeling the Vehicle Ecosystem with FuseRelationships: Modeling the Vehicle Ecosystem with Fuse
Relationships: Modeling the Vehicle Ecosystem with Fuse
 
Fuse 2
Fuse 2Fuse 2
Fuse 2
 
Connecting Things
Connecting ThingsConnecting Things
Connecting Things
 
Persistent Compute Objects and the Fabric of Cyberspace
Persistent Compute Objects and the Fabric of CyberspacePersistent Compute Objects and the Fabric of Cyberspace
Persistent Compute Objects and the Fabric of Cyberspace
 
Persistent Compute Objects - Picos
Persistent Compute Objects - PicosPersistent Compute Objects - Picos
Persistent Compute Objects - Picos
 
Fuse Technical Presentation
Fuse Technical PresentationFuse Technical Presentation
Fuse Technical Presentation
 
Personal Cloud Application Architectures
Personal Cloud Application ArchitecturesPersonal Cloud Application Architectures
Personal Cloud Application Architectures
 
Why Personal Clouds
Why Personal CloudsWhy Personal Clouds
Why Personal Clouds
 
Personal Cloud Operating Systems
Personal Cloud Operating SystemsPersonal Cloud Operating Systems
Personal Cloud Operating Systems
 
Introducing Personal Event Networks
Introducing Personal Event NetworksIntroducing Personal Event Networks
Introducing Personal Event Networks
 
The Live Web #SCITDA11 Keynote
The Live Web #SCITDA11 KeynoteThe Live Web #SCITDA11 Keynote
The Live Web #SCITDA11 Keynote
 
Shaping strategies and Startups
Shaping strategies and StartupsShaping strategies and Startups
Shaping strategies and Startups
 
Shaping Strategies and the Live Web - Kynetx Impact 2011
Shaping Strategies and the Live Web - Kynetx Impact 2011Shaping Strategies and the Live Web - Kynetx Impact 2011
Shaping Strategies and the Live Web - Kynetx Impact 2011
 
The Evented Web Makes Users Happy
The Evented Web Makes Users HappyThe Evented Web Makes Users Happy
The Evented Web Makes Users Happy
 
A Programming Layer for the Internet from Kynetx Impact 2010
A Programming Layer for the Internet from Kynetx Impact 2010A Programming Layer for the Internet from Kynetx Impact 2010
A Programming Layer for the Internet from Kynetx Impact 2010
 
Using Puppet and Cobbler to Automate Your Infrastructure
Using Puppet and Cobbler to Automate Your InfrastructureUsing Puppet and Cobbler to Automate Your Infrastructure
Using Puppet and Cobbler to Automate Your Infrastructure
 
Using Apache as an Application Server
Using Apache as an Application ServerUsing Apache as an Application Server
Using Apache as an Application Server
 

Recently uploaded

Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
flufftailshop
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 

Recently uploaded (20)

Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 

Events, Picos, and Microservices

  • 1. Events, Picos, and Microservices Phillip J. Windley, PhD Enterprise Architecture, BYU CTO, Kynetx, Inc. @windley
  • 2.
  • 3. This APIs in this talk aren’t RESTful
  • 5. The Internet of Things will lead to a computing experience that is immersive & pervasive.
  • 7. vs
  • 8.
  • 9. The Current #IoT Model Won’t Scale
  • 10. Me
  • 11.
  • 12. GE
  • 13. Internet of My Things Me GE
  • 14. The Internet of My Things
  • 15. The Internet of My Things leads to The API of Me
  • 17. “this happened” vs “do this”
  • 18.
  • 19.
  • 20. Event System Properties Events are autonomous Event-driven system are more loosely coupled Downstream (receiver) driven flow control Near real-time propagation
  • 21. Fuse is Three Things http://joinfuse.com
  • 22.
  • 23. picos
  • 24. Picos are online computers Identity—they represent a specific entity Storage—they persistently encapsulate both structured and unstructured data Open event network—they respond to events Processing—they run applications autonomously Event Channels—they have connections to other picos Services—The provide a consistent set of services APIs—they provide access to and access other online services
  • 25. Owner Pico Fleet Pico Vehicle Pico Vehicle Pico Vehicle Pico
  • 27. Web Application Browser Application Data
  • 29. Rather than a model where a system presents an API for a collection of resources….
  • 30. Rather than a model where a system presents an API for a collection of resources…. Picos present a model wherein each pico presents it’s own, customizable API
  • 32. Phil's Pico owner Lynne's Pico owner
  • 33. Phil's Pico Tom's Pico owner Lynne's Pico owner
  • 34. Phil's Pico Tom's Pico owner Lynne's Pico owner
  • 35. Phil's Pico Tom's Pico owner Lynne's Pico owner
  • 36. Phil's Pico Tom's Pico owner Lynne's Pico owner borrower
  • 39. Picos Support A Familiar Model Kynetx Rules Engine Other Data Sources APIs Web Services Rulesets Persistent Data APIs container
  • 40. Picos Support A Familiar Model Persistent Compute Object object Kynetx Rules Engine Other Data Sources APIs Web Services Rulesets Persistent Data APIs container
  • 41. Picos Support A Familiar Model Persistent Compute Object object Kynetx Rules Engine Other Data Sources APIs Web Services Rulesets Persistent Data APIs container CloudOS Configuration Management CloudOS Service Notification Service Personal Data Service UI Support File Social Social Fuse Library Guard Tour Library libraries
  • 42. Picos Support A Familiar Model Kynetx Rules Engine Other Data Sources Web Services APIs Rulesets Persistent Data APIs container Persistent Compute Object object Forevr.us (contact) Timeline (social) Vehicle Manangement To Do & Reminders Intentcasting Home Management Fuse Guard Tour applications CloudOS Personal Data Service Configuration Management CloudOS Service Notification Service UI Support File Social Social Fuse Library Guard Tour Library libraries
  • 43. Picos Are Decentralized & Networked pico pico Pico Space Hosting Space Hosting Company A Hosting Company B Self Hosted pico pico pico pico pico pico pico KRE KRE KRE Pico Containers
  • 44. Built on open standards Built on open source
  • 45. But it’s not just about manufactured things...
  • 46. Institution Managers Tour Index Report "1" Location Index Report Index Guard "Frank" Tour "LUFX" Tour "KUFF" Location "R7RK" Location "G5YH" Report "current" Location "T67G" Guards Subscriptions permanent temporary This can get complex… Report R"2e"port R"2e"port R"2e"ports Tours Tours Tours Tours Locations Locations Locations Locations
  • 47. Picos Use an Event Query API functions return results based on persistent data pico functions rules persistent storage User Interface name email phone UI updates presentation Done or Cancel using query API query API event API user makes change in UI resulting in an event rules validate and process event, often updating model
  • 48. Programming Model Program in any language you like OAuth access to pico Pico provides user data processing API and inter-pico communications
  • 49. Microservices Organized around a single business capability Small, generally less than 1000 lines and code and usually much smaller Event-based and asynchronous Run in their own process Independently deployable Decentralized data storage
  • 51. carvoyant: numeric_data_key vehicle event bus fuel level low
  • 52. carvoyant: numeric_data_key fuse: update_fuel_level vehicle event bus fuel level low
  • 53. carvoyant: numeric_data_key fuse: update_fuel_level vehicle event bus fuel level low fuse: new_alert create alert
  • 54. carvoyant: numeric_data_key fuse: update_fuel_level vehicle event bus fuel level low fuse: new_alert create alert notification: status send notification
  • 55. carvoyant: numeric_data_key fuse: update_fuel_level vehicle event bus fuel level low fuse: new_alert create alert record new fuel notification: status send notification
  • 56. carvoyant: numeric_data_key fuse: update_fuel_level vehicle event bus fuel level low fuse: new_alert create alert IFTTT record new fuel notification: status send notification
  • 57. carvoyant: numeric_data_key fuse: update_fuel_level save trip IFTTT vehicle event bus fuel level low fuse: new_alert create alert record new fuel notification: status send notification
  • 58. Healing Subscriptions rule check_subscriptions { select when pds profile_updated pre { vid = carvoyant:vehicle_id(); my_subs = carvoyant:getSubscription(vid); should_have = required_subscription_list.length(); } if(my_subs.length() < should_have) then send_directive("not enough subscriptions") fired { log ">>>> vehicle #{vid} needs subscription check"; raise fuse event need_initial_carvoyant_subscriptions; } }
  • 59. Healing Subscriptions rule check_subscriptions { select when pds profile_updated pre { vid = carvoyant:vehicle_id(); my_subs = carvoyant:getSubscription(vid); should_have = required_subscription_list.length(); } if(my_subs.length() < should_have) then send_directive("not enough subscriptions") fired { log ">>>> vehicle #{vid} needs subscription check"; raise fuse event need_initial_carvoyant_subscriptions; } }
  • 60. Healing Subscriptions rule check_subscriptions { select when pds profile_updated pre { vid = carvoyant:vehicle_id(); my_subs = carvoyant:getSubscription(vid); should_have = required_subscription_list.length(); } if(my_subs.length() < should_have) then send_directive("not enough subscriptions") fired { log ">>>> vehicle #{vid} needs subscription check"; raise fuse event need_initial_carvoyant_subscriptions; } }
  • 61. Healing Subscriptions rule check_subscriptions { select when pds profile_updated pre { vid = carvoyant:vehicle_id(); my_subs = carvoyant:getSubscription(vid); should_have = required_subscription_list.length(); } if(my_subs.length() < should_have) then send_directive("not enough subscriptions") fired { log ">>>> vehicle #{vid} needs subscription check"; raise fuse event need_initial_carvoyant_subscriptions; } }
  • 62. Healing Subscriptions rule check_subscriptions { select when pds profile_updated pre { vid = carvoyant:vehicle_id(); my_subs = carvoyant:getSubscription(vid); should_have = required_subscription_list.length(); } if(my_subs.length() < should_have) then send_directive("not enough subscriptions") fired { log ">>>> vehicle #{vid} needs subscription check"; raise fuse event need_initial_carvoyant_subscriptions; } }
  • 63. KRL Rules Runs in picos Built for microservices Complex event expressions Persistent variables Side-effects are quarantined
  • 66. f(f(x)) = f(x) Idempotent
  • 69. Why do this? Orthogonality and modularity are powerful: network effects! Loose coupling Simple services are easier to get right More private
  • 70. My book on event programming
  • 72. Events, Picos, and Microservices ! Contact info: Phil Windley pjw@kynetx.com www.windley.com @windley