SlideShare a Scribd company logo
Events, Picos, and 
Microservices 
Phillip J. Windley, PhD 
Enterprise Architecture, BYU 
CTO, Kynetx, Inc. 
@windley
Events, Picos, and Microservices
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
Events, Picos, and Microservices
The Current #IoT Model 
Won’t Scale
Me
Events, Picos, and Microservices
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”
Events, Picos, and Microservices
Events, Picos, and Microservices
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
Events, Picos, and Microservices
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
 
[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
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
Inho Kang
 
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
 
[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 패턴 실습
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and 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
 
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

find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
aslasdfmkhan4750
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
Amul milk launches in US: Key details of its new products ...
Amul milk launches in US: Key details of its new products ...Amul milk launches in US: Key details of its new products ...
Amul milk launches in US: Key details of its new products ...
chetankumar9855
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
Priyanka Aash
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
maigasapphire
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
SynapseIndia
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Kunal Gupta
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Zilliz
 
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSECHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
kumarjarun2010
 
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAIApplying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
ssuserd4e0d2
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
Edge AI and Vision Alliance
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
Ivanti
 
The Role of Technology in Payroll Statutory Compliance (1).pdf
The Role of Technology in Payroll Statutory Compliance (1).pdfThe Role of Technology in Payroll Statutory Compliance (1).pdf
The Role of Technology in Payroll Statutory Compliance (1).pdf
paysquare consultancy
 

Recently uploaded (20)

find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
High Profile Girls Call ServiCe Hyderabad 0000000000 Tanisha Best High Class ...
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
Amul milk launches in US: Key details of its new products ...
Amul milk launches in US: Key details of its new products ...Amul milk launches in US: Key details of its new products ...
Amul milk launches in US: Key details of its new products ...
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
(CISOPlatform Summit & SACON 2024) Keynote _ Power Digital Identities With AI...
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptxDublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
Dublin_mulesoft_meetup_Mulesoft_Salesforce_Integration (1).pptx
 
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and OllamaTirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
 
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSECHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
CHAPTER-8 COMPONENTS OF COMPUTER SYSTEM CLASS 9 CBSE
 
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAIApplying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
Applying Retrieval-Augmented Generation (RAG) to Combat Hallucinations in GenAI
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
“Deploying Large Language Models on a Raspberry Pi,” a Presentation from Usef...
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
July Patch Tuesday
July Patch TuesdayJuly Patch Tuesday
July Patch Tuesday
 
The Role of Technology in Payroll Statutory Compliance (1).pdf
The Role of Technology in Payroll Statutory Compliance (1).pdfThe Role of Technology in Payroll Statutory Compliance (1).pdf
The Role of Technology in Payroll Statutory Compliance (1).pdf
 

Events, Picos, and Microservices

  • 1. Events, Picos, and Microservices Phillip J. Windley, PhD Enterprise Architecture, BYU CTO, Kynetx, Inc. @windley
  • 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
  • 9. The Current #IoT Model Won’t Scale
  • 10. Me
  • 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”
  • 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
  • 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