SlideShare a Scribd company logo
1 of 12
EVENTS: DISTRIBUTED
PROGRAMMING MADE EASY
STORM + F#
ABOUT ME
Eugene Tolmachev
Principal Architect @ Prolucid
Developing software for over 20 years
Open source contributor:
• FsStorm maintainer
• Bitlore author
• FsUnit
• Dapper
• MassTransit
• Nowin
Storm + F#
SCALE OUT & AVAILABILITY
Storm + F#
UI Backend DB
A = Aui Abe Adb
DISTRIBUTED COMPUTING
DRPC/Actors
• CORBA/DCOM
• Web-services
• AKKA
• Orleans
Data freshness
ESP/CEP
• Storm
• Spark
Batch processing
• Custom ETL
• Hadoop
• mbrace
• Spark
Storm + F#
ASK VS TELL
Storm + F#
Model
Price
Risk Date
getRisk(date)
risk
date
getModel(date) model
Stack:
 …
 getPrice
 getRisk
 getModel
 …
• Easy to start with
• Composed at design-time
• Fault handling: on the caller
• Challenging to cache
• Fragile integration
EVENTS (FIRE-N-FORGET)
Implemented via Store-and-forward messaging
Represent a summary of a change
Self-contained*
Time-relevant, not time-sensitive
Uniquely identifiable
• Tracing/correlation
• Idempotency
Storm + F#
ASK VS TELL
Storm + F#
• Upfront setup
• Can compose at runtime
• Fault handling: Compensations
• Caching – unnecessary
• Can evolve independently
• Embarrassingly parallel
Price
Risk
DateModel
modelUpdated(m,date)
riskUpdated(r,m,date)
newDay(date)
newDay(date)
calculate
Model
calculate
Risk
calculate
Price
generate
Date
Multiple Stacks:
MICRO-SERVICES
Services encapsulate
• Business-logic
• Can evolve independently as long as the surface API remains the same
Services control the context
• Persistence
• Security
• Performance
Micro-services
+ Do one thing only, do it well
- Introduce latency
- Deployment/management overhead
Storm + F#
THERMOSTAT ALERT
Storm + F#
Sensor
is up
Sensor
value
Settings
updated
Write down
raw data
Evaluate against
the threshold
Send notification
Read all
sensors
Write down
the settings
Write down
the result
APACHE STORM
Runs on JRE
Storm
• Spouts: throttled
• Streams: default and named
• Tuples: anchored or not
• Bolts: input – on demand/output – at will
• Grouping (affinity): all, shuffle, fields, direct
Storm multilang protocol:
• JSON over stdin/stdout
• Components: a process per instance
Storm CLI, to start:
• storm dev-zookeeper (runtime coordination)
• storm nimbus (management/api)
• storm supervisor (runs components)
• storm ui (optionally, http://localhost:8080)
Storm + F#
THERMOSTAT TOPOLOGY
Storm + F#
sensorStartedEvents
[1]
sensorUpdateEvents
[1]
settingsUpdateEvents
[1]
sensorWriter
[2]
sensorViewProjection
[2]
sensorViewUpdatedNotifier
[1]
settingsUpdatedNotifier
[1]
settingsWriter
[1]
sensorViewWriter
[2]
allSensorsReader
[1]
FSSTORM
Runtime
• Implements multilang protocol
• Lets you write components in F#
• Additional implementations for unit-testing
DSL:
• Define topology in F#
• Validated
Scripts
• Submit your topology to nimbus
Storm + F#

More Related Content

Viewers also liked

Beckygibelwork 160105160230
Beckygibelwork 160105160230Beckygibelwork 160105160230
Beckygibelwork 160105160230coxhub
 
Ticket Trends thru August 2016
Ticket Trends thru August 2016Ticket Trends thru August 2016
Ticket Trends thru August 2016Susan Bohl
 
Procesador ijhc
Procesador ijhcProcesador ijhc
Procesador ijhcNaira Diaz
 
Mezzoni-Brochure
Mezzoni-BrochureMezzoni-Brochure
Mezzoni-BrochureNoam Benoni
 
Periféricos ijhc
Periféricos ijhcPeriféricos ijhc
Periféricos ijhcNaira Diaz
 
Professional Post Bachelors Resume.
Professional Post Bachelors Resume.Professional Post Bachelors Resume.
Professional Post Bachelors Resume.Katelynn Taylor
 
Ensinar e aprender em/na rede: diferentes abordagens teórico-práticas do conc...
Ensinar e aprender em/na rede: diferentes abordagens teórico-práticas do conc...Ensinar e aprender em/na rede: diferentes abordagens teórico-práticas do conc...
Ensinar e aprender em/na rede: diferentes abordagens teórico-práticas do conc...Patrícia Scherer Bassani
 
Trilhas de aprendizagem na web: autoria e compartilhamento de artefatos digitais
Trilhas de aprendizagem na web: autoria e compartilhamento de artefatos digitaisTrilhas de aprendizagem na web: autoria e compartilhamento de artefatos digitais
Trilhas de aprendizagem na web: autoria e compartilhamento de artefatos digitaisPatrícia Scherer Bassani
 
The Reconstructive Ladder - Mussa Mensa
The Reconstructive Ladder - Mussa MensaThe Reconstructive Ladder - Mussa Mensa
The Reconstructive Ladder - Mussa Mensawelshbarbers
 
Tema 6 belén
Tema 6 belénTema 6 belén
Tema 6 belénbelenpm9
 
Managed Services Advisory Brochure
Managed Services Advisory BrochureManaged Services Advisory Brochure
Managed Services Advisory BrochureShaun Sloan
 
Broschüre comfort diele de
Broschüre comfort diele deBroschüre comfort diele de
Broschüre comfort diele deKavaler
 

Viewers also liked (14)

Beckygibelwork 160105160230
Beckygibelwork 160105160230Beckygibelwork 160105160230
Beckygibelwork 160105160230
 
Ticket Trends thru August 2016
Ticket Trends thru August 2016Ticket Trends thru August 2016
Ticket Trends thru August 2016
 
Procesador ijhc
Procesador ijhcProcesador ijhc
Procesador ijhc
 
Mezzoni-Brochure
Mezzoni-BrochureMezzoni-Brochure
Mezzoni-Brochure
 
Periféricos ijhc
Periféricos ijhcPeriféricos ijhc
Periféricos ijhc
 
Professional Post Bachelors Resume.
Professional Post Bachelors Resume.Professional Post Bachelors Resume.
Professional Post Bachelors Resume.
 
Благотворительность в Саратове. Из коллекции Ю. А. Сафронова = Charity Sarato...
Благотворительность в Саратове. Из коллекции Ю. А. Сафронова = Charity Sarato...Благотворительность в Саратове. Из коллекции Ю. А. Сафронова = Charity Sarato...
Благотворительность в Саратове. Из коллекции Ю. А. Сафронова = Charity Sarato...
 
Ensinar e aprender em/na rede: diferentes abordagens teórico-práticas do conc...
Ensinar e aprender em/na rede: diferentes abordagens teórico-práticas do conc...Ensinar e aprender em/na rede: diferentes abordagens teórico-práticas do conc...
Ensinar e aprender em/na rede: diferentes abordagens teórico-práticas do conc...
 
Trilhas de aprendizagem na web: autoria e compartilhamento de artefatos digitais
Trilhas de aprendizagem na web: autoria e compartilhamento de artefatos digitaisTrilhas de aprendizagem na web: autoria e compartilhamento de artefatos digitais
Trilhas de aprendizagem na web: autoria e compartilhamento de artefatos digitais
 
The Reconstructive Ladder - Mussa Mensa
The Reconstructive Ladder - Mussa MensaThe Reconstructive Ladder - Mussa Mensa
The Reconstructive Ladder - Mussa Mensa
 
Tema 6 belén
Tema 6 belénTema 6 belén
Tema 6 belén
 
Vaccines
VaccinesVaccines
Vaccines
 
Managed Services Advisory Brochure
Managed Services Advisory BrochureManaged Services Advisory Brochure
Managed Services Advisory Brochure
 
Broschüre comfort diele de
Broschüre comfort diele deBroschüre comfort diele de
Broschüre comfort diele de
 

Similar to Events: Distributed programming made easy

Docksal: Better than VMs
Docksal:  Better than VMsDocksal:  Better than VMs
Docksal: Better than VMsLeonid Makarov
 
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projectsOSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projectsJeongkyu Shin
 
What you see is what you get for AWS infrastructure
What you see is what you get for AWS infrastructureWhat you see is what you get for AWS infrastructure
What you see is what you get for AWS infrastructureAnton Babenko
 
How automated cloud infrastructure setups can help with Continuous Delivery
How automated cloud infrastructure setups can help with Continuous DeliveryHow automated cloud infrastructure setups can help with Continuous Delivery
How automated cloud infrastructure setups can help with Continuous DeliveryEdmund Siegfried Haselwanter
 
everything as a code abdelmajid aneddame
everything as a code abdelmajid aneddameeverything as a code abdelmajid aneddame
everything as a code abdelmajid aneddameAbdulrehman Altaf
 
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdfHashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdfssuser705051
 
openFoam Hangout on Air #2 - Cloud Simulation, presentation by Dacolt
openFoam Hangout on Air #2 - Cloud Simulation, presentation by DacoltopenFoam Hangout on Air #2 - Cloud Simulation, presentation by Dacolt
openFoam Hangout on Air #2 - Cloud Simulation, presentation by DacoltJulien de Charentenay
 
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...Initcron Systems Private Limited
 
Firefox OS in the development process of a HTML5 app with Cordova
Firefox OS in the development process of a HTML5 app with CordovaFirefox OS in the development process of a HTML5 app with Cordova
Firefox OS in the development process of a HTML5 app with CordovaThomas Dori
 
Xps 13 developer edition - slide share presentation-02.20.13
Xps 13 developer edition  - slide share presentation-02.20.13Xps 13 developer edition  - slide share presentation-02.20.13
Xps 13 developer edition - slide share presentation-02.20.13Barton George
 
Deep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming LibraryDeep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming LibraryJim McKeeth
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERIndrajit Poddar
 
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena TapiaFrom Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena TapiaDocker, Inc.
 
What you see is what you get for AWS infrastructure
What you see is what you get for AWS infrastructureWhat you see is what you get for AWS infrastructure
What you see is what you get for AWS infrastructureAnton Babenko
 
Intro - End to end ML with Kubeflow @ SignalConf 2018
Intro - End to end ML with Kubeflow @ SignalConf 2018Intro - End to end ML with Kubeflow @ SignalConf 2018
Intro - End to end ML with Kubeflow @ SignalConf 2018Holden Karau
 
Sina App Engine - a distributed web solution on cloud
Sina App Engine - a distributed web solution on cloudSina App Engine - a distributed web solution on cloud
Sina App Engine - a distributed web solution on cloudcong lei
 
Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018Anton Babenko
 

Similar to Events: Distributed programming made easy (20)

Docksal: Better than VMs
Docksal:  Better than VMsDocksal:  Better than VMs
Docksal: Better than VMs
 
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projectsOSS SW Basics Lecture 03: Fundamental parts of open-source projects
OSS SW Basics Lecture 03: Fundamental parts of open-source projects
 
What you see is what you get for AWS infrastructure
What you see is what you get for AWS infrastructureWhat you see is what you get for AWS infrastructure
What you see is what you get for AWS infrastructure
 
Understanding meteor
Understanding meteorUnderstanding meteor
Understanding meteor
 
How automated cloud infrastructure setups can help with Continuous Delivery
How automated cloud infrastructure setups can help with Continuous DeliveryHow automated cloud infrastructure setups can help with Continuous Delivery
How automated cloud infrastructure setups can help with Continuous Delivery
 
everything as a code abdelmajid aneddame
everything as a code abdelmajid aneddameeverything as a code abdelmajid aneddame
everything as a code abdelmajid aneddame
 
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdfHashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
Hashicorp-Terraform-Deep-Dive-with-no-Fear-Victor-Turbinsky-Texuna.pdf
 
Terraform-2.pdf
Terraform-2.pdfTerraform-2.pdf
Terraform-2.pdf
 
openFoam Hangout on Air #2 - Cloud Simulation, presentation by Dacolt
openFoam Hangout on Air #2 - Cloud Simulation, presentation by DacoltopenFoam Hangout on Air #2 - Cloud Simulation, presentation by Dacolt
openFoam Hangout on Air #2 - Cloud Simulation, presentation by Dacolt
 
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
Run it like Google - Story of Devops and Kubernetes Evolution - Past, Present...
 
Firefox OS in the development process of a HTML5 app with Cordova
Firefox OS in the development process of a HTML5 app with CordovaFirefox OS in the development process of a HTML5 app with Cordova
Firefox OS in the development process of a HTML5 app with Cordova
 
Xps 13 developer edition - slide share presentation-02.20.13
Xps 13 developer edition  - slide share presentation-02.20.13Xps 13 developer edition  - slide share presentation-02.20.13
Xps 13 developer edition - slide share presentation-02.20.13
 
Deep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming LibraryDeep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming Library
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
 
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena TapiaFrom Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
From Zero Docker to Hackathon Winner - Marcos Lilljedahl and Jimena Tapia
 
Get the Gist: .NET
Get the Gist: .NETGet the Gist: .NET
Get the Gist: .NET
 
What you see is what you get for AWS infrastructure
What you see is what you get for AWS infrastructureWhat you see is what you get for AWS infrastructure
What you see is what you get for AWS infrastructure
 
Intro - End to end ML with Kubeflow @ SignalConf 2018
Intro - End to end ML with Kubeflow @ SignalConf 2018Intro - End to end ML with Kubeflow @ SignalConf 2018
Intro - End to end ML with Kubeflow @ SignalConf 2018
 
Sina App Engine - a distributed web solution on cloud
Sina App Engine - a distributed web solution on cloudSina App Engine - a distributed web solution on cloud
Sina App Engine - a distributed web solution on cloud
 
Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018Terraform modules and best-practices - September 2018
Terraform modules and best-practices - September 2018
 

Recently uploaded

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Recently uploaded (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Events: Distributed programming made easy

  • 2. ABOUT ME Eugene Tolmachev Principal Architect @ Prolucid Developing software for over 20 years Open source contributor: • FsStorm maintainer • Bitlore author • FsUnit • Dapper • MassTransit • Nowin Storm + F#
  • 3. SCALE OUT & AVAILABILITY Storm + F# UI Backend DB A = Aui Abe Adb
  • 4. DISTRIBUTED COMPUTING DRPC/Actors • CORBA/DCOM • Web-services • AKKA • Orleans Data freshness ESP/CEP • Storm • Spark Batch processing • Custom ETL • Hadoop • mbrace • Spark Storm + F#
  • 5. ASK VS TELL Storm + F# Model Price Risk Date getRisk(date) risk date getModel(date) model Stack:  …  getPrice  getRisk  getModel  … • Easy to start with • Composed at design-time • Fault handling: on the caller • Challenging to cache • Fragile integration
  • 6. EVENTS (FIRE-N-FORGET) Implemented via Store-and-forward messaging Represent a summary of a change Self-contained* Time-relevant, not time-sensitive Uniquely identifiable • Tracing/correlation • Idempotency Storm + F#
  • 7. ASK VS TELL Storm + F# • Upfront setup • Can compose at runtime • Fault handling: Compensations • Caching – unnecessary • Can evolve independently • Embarrassingly parallel Price Risk DateModel modelUpdated(m,date) riskUpdated(r,m,date) newDay(date) newDay(date) calculate Model calculate Risk calculate Price generate Date Multiple Stacks:
  • 8. MICRO-SERVICES Services encapsulate • Business-logic • Can evolve independently as long as the surface API remains the same Services control the context • Persistence • Security • Performance Micro-services + Do one thing only, do it well - Introduce latency - Deployment/management overhead Storm + F#
  • 9. THERMOSTAT ALERT Storm + F# Sensor is up Sensor value Settings updated Write down raw data Evaluate against the threshold Send notification Read all sensors Write down the settings Write down the result
  • 10. APACHE STORM Runs on JRE Storm • Spouts: throttled • Streams: default and named • Tuples: anchored or not • Bolts: input – on demand/output – at will • Grouping (affinity): all, shuffle, fields, direct Storm multilang protocol: • JSON over stdin/stdout • Components: a process per instance Storm CLI, to start: • storm dev-zookeeper (runtime coordination) • storm nimbus (management/api) • storm supervisor (runs components) • storm ui (optionally, http://localhost:8080) Storm + F#
  • 11. THERMOSTAT TOPOLOGY Storm + F# sensorStartedEvents [1] sensorUpdateEvents [1] settingsUpdateEvents [1] sensorWriter [2] sensorViewProjection [2] sensorViewUpdatedNotifier [1] settingsUpdatedNotifier [1] settingsWriter [1] sensorViewWriter [2] allSensorsReader [1]
  • 12. FSSTORM Runtime • Implements multilang protocol • Lets you write components in F# • Additional implementations for unit-testing DSL: • Define topology in F# • Validated Scripts • Submit your topology to nimbus Storm + F#

Editor's Notes

  1. Availability – scalability implied Scale out means distribution
  2. Events Stream Processing – sweet spot Next – oversimplified and mostly wrong example from financial domain
  3. Data – typically normalized Model – valid till then next one;
  4. Events – summary of change, de-normalized data, Next – hosting