SlideShare a Scribd company logo
1 of 17
Download to read offline
EDA with SAPO
    Broker and Perl
     Pedro Melo <melo@simplicidade.org>
30 Jul, 2008 - Lisbon Perl Mongers Tech Meeting
EDA

• NOT: Economic Development
  Administration
• NOT: European Defence Agency
• NOT: Electronic design automation
• Actually: Event-driven architecture
EDA

• Everything is about events: generation,
  consumption, processing
• Works great with loosely coupled systems
• Very asynchronous in nature, someone
  triggers an event, eventually someone
  process the event
Make Money Fast

• Loosely couple systems means you don’t
  have to say you’re sorry
• A new system does not usually require
  touching older systems
• Need more power? add more consumers/
  processors
SAPO Broker

• Keyword Bingo: a MOM using P2P Agents,
    providing basic PubSub and Queueing
• Key fact n.1: distributed - no single point of
    failure, no “head” nodes, no “ultra-peers”
•    Key fact n. 2: in production for the last 2/3
    years at SAPO
SAPO Broker
• Implemented in Java, but bindings for Perl,
  Python, Ruby, PHP, C out of the box
• SAPO::Broker module included in the SVN
• Soon Net::SAPO::Broker and
  AnyEvent::SAPO::Broker at CPAN
• Basic publishing also possible with HTTP
  POST or file system (UDP since today)
Distributed P2P
             Server 2




  Server 1              Server 3
Distributed P2P
             Server 2




  Server 1              Server 3
Distributed P2P
             Server 2




  Server 1              Server 3




             Server 4
Distributed P2P
                      Server 2




 Developer Laptop 1              Developer Laptop 2




    Server 1                           Server 3




                      Server 4
SAPO Broker Channels

• Offers three types of “channels”
 • Topics
 • Queues
 • “Topic as Queues”
Topics

• Standard Publish/Subscribe
• Someone publishes message, every
  subscriber receives copy
• Drops messages for slower consumers
Queues

• Processes queue requests
• Several workers consume requests
• Each requests goes to one worker
• System does not provide return channel for
  response, make up your own
Topic as Queues
• Twist on normal Topics
• Several worker processes subscribe “as
  one” to a topic
• Notifications will be delivered over all
  workers, each event goes to only one
  worker
• Excellent for heavy processing on busy
Topics are just strings
• No hidden magic, no hierarchical
  organization
• But you can add your own
• SAPO uses /sapo/<system>/<other>/
  <levels>/<here>
• You can subscribe with RegExp though :)
Wrap up
• EDA systems are easier to scale
• Loosely coupled systems are easier to
  manage
• SAPO Broker is a stable MOM for building
  EDA with Perl
• The distributed nature of SAPO Broker
  makes it better at using all your cores
Thanks!

More Related Content

Viewers also liked (6)

Plack
PlackPlack
Plack
 
Perl Instruments
Perl InstrumentsPerl Instruments
Perl Instruments
 
Enterprise git
Enterprise gitEnterprise git
Enterprise git
 
WTF is XMPP?
WTF is XMPP?WTF is XMPP?
WTF is XMPP?
 
Large-scale digitisation options at the Natural History Museum, London.
Large-scale digitisation options at the Natural History Museum, London.Large-scale digitisation options at the Natural History Museum, London.
Large-scale digitisation options at the Natural History Museum, London.
 
Git Internals
Git InternalsGit Internals
Git Internals
 

Similar to EDA with SAPO Broker

Rhonda Layfield Sniffing Your Network With Netmon 3.3
Rhonda Layfield   Sniffing Your Network With Netmon 3.3Rhonda Layfield   Sniffing Your Network With Netmon 3.3
Rhonda Layfield Sniffing Your Network With Netmon 3.3
Nathan Winters
 
Xen_and_Rails_deployment
Xen_and_Rails_deploymentXen_and_Rails_deployment
Xen_and_Rails_deployment
Abhishek Singh
 

Similar to EDA with SAPO Broker (20)

Challenges and experiences with IPTV from a network point of view
Challenges and experiences with IPTV from a network point of viewChallenges and experiences with IPTV from a network point of view
Challenges and experiences with IPTV from a network point of view
 
Reduce Redundant Producers from Partitioned Producer - Pulsar Summit NA 2021
Reduce Redundant Producers from Partitioned Producer - Pulsar Summit NA 2021Reduce Redundant Producers from Partitioned Producer - Pulsar Summit NA 2021
Reduce Redundant Producers from Partitioned Producer - Pulsar Summit NA 2021
 
The Current State of Asynchronous Processing With Ruby
The Current State of Asynchronous Processing With RubyThe Current State of Asynchronous Processing With Ruby
The Current State of Asynchronous Processing With Ruby
 
Working With People Adl Uni
Working With People Adl UniWorking With People Adl Uni
Working With People Adl Uni
 
Http Status Report
Http Status ReportHttp Status Report
Http Status Report
 
Rhonda Layfield Sniffing Your Network With Netmon 3.3
Rhonda Layfield   Sniffing Your Network With Netmon 3.3Rhonda Layfield   Sniffing Your Network With Netmon 3.3
Rhonda Layfield Sniffing Your Network With Netmon 3.3
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
 
Ripe71 FastNetMon open source DoS / DDoS mitigation
Ripe71 FastNetMon open source DoS / DDoS mitigationRipe71 FastNetMon open source DoS / DDoS mitigation
Ripe71 FastNetMon open source DoS / DDoS mitigation
 
Why we choose Symfony2
Why we choose Symfony2Why we choose Symfony2
Why we choose Symfony2
 
Xen_and_Rails_deployment
Xen_and_Rails_deploymentXen_and_Rails_deployment
Xen_and_Rails_deployment
 
The End of Data Entry: Liberate Your Organization Through Automation and Inte...
The End of Data Entry: Liberate Your Organization Through Automation and Inte...The End of Data Entry: Liberate Your Organization Through Automation and Inte...
The End of Data Entry: Liberate Your Organization Through Automation and Inte...
 
Acus08 Advanced Load Balancing Apache2.2
Acus08 Advanced Load Balancing Apache2.2Acus08 Advanced Load Balancing Apache2.2
Acus08 Advanced Load Balancing Apache2.2
 
Server side story
Server side storyServer side story
Server side story
 
Advanced MPI
Advanced MPIAdvanced MPI
Advanced MPI
 
Capistrano
CapistranoCapistrano
Capistrano
 
Websocket 101 in Python
Websocket 101 in PythonWebsocket 101 in Python
Websocket 101 in Python
 
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
RTBkit Meetup - Developer Spotlight, Behind the Scenes of RTBkit and Intro to...
 
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
KrankGeek November 2021 - Best practices in Electron-based desktop developmen...
 
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using KurentoFIWARE Global Summit - Real-time Media Stream Processing Using Kurento
FIWARE Global Summit - Real-time Media Stream Processing Using Kurento
 
Perfmon And Profiler 101
Perfmon And Profiler 101Perfmon And Profiler 101
Perfmon And Profiler 101
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

EDA with SAPO Broker

  • 1. EDA with SAPO Broker and Perl Pedro Melo <melo@simplicidade.org> 30 Jul, 2008 - Lisbon Perl Mongers Tech Meeting
  • 2. EDA • NOT: Economic Development Administration • NOT: European Defence Agency • NOT: Electronic design automation • Actually: Event-driven architecture
  • 3. EDA • Everything is about events: generation, consumption, processing • Works great with loosely coupled systems • Very asynchronous in nature, someone triggers an event, eventually someone process the event
  • 4. Make Money Fast • Loosely couple systems means you don’t have to say you’re sorry • A new system does not usually require touching older systems • Need more power? add more consumers/ processors
  • 5. SAPO Broker • Keyword Bingo: a MOM using P2P Agents, providing basic PubSub and Queueing • Key fact n.1: distributed - no single point of failure, no “head” nodes, no “ultra-peers” • Key fact n. 2: in production for the last 2/3 years at SAPO
  • 6. SAPO Broker • Implemented in Java, but bindings for Perl, Python, Ruby, PHP, C out of the box • SAPO::Broker module included in the SVN • Soon Net::SAPO::Broker and AnyEvent::SAPO::Broker at CPAN • Basic publishing also possible with HTTP POST or file system (UDP since today)
  • 7. Distributed P2P Server 2 Server 1 Server 3
  • 8. Distributed P2P Server 2 Server 1 Server 3
  • 9. Distributed P2P Server 2 Server 1 Server 3 Server 4
  • 10. Distributed P2P Server 2 Developer Laptop 1 Developer Laptop 2 Server 1 Server 3 Server 4
  • 11. SAPO Broker Channels • Offers three types of “channels” • Topics • Queues • “Topic as Queues”
  • 12. Topics • Standard Publish/Subscribe • Someone publishes message, every subscriber receives copy • Drops messages for slower consumers
  • 13. Queues • Processes queue requests • Several workers consume requests • Each requests goes to one worker • System does not provide return channel for response, make up your own
  • 14. Topic as Queues • Twist on normal Topics • Several worker processes subscribe “as one” to a topic • Notifications will be delivered over all workers, each event goes to only one worker • Excellent for heavy processing on busy
  • 15. Topics are just strings • No hidden magic, no hierarchical organization • But you can add your own • SAPO uses /sapo/<system>/<other>/ <levels>/<here> • You can subscribe with RegExp though :)
  • 16. Wrap up • EDA systems are easier to scale • Loosely coupled systems are easier to manage • SAPO Broker is a stable MOM for building EDA with Perl • The distributed nature of SAPO Broker makes it better at using all your cores