SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
Which messaging layer to
use in a loosely coupled
distributed app?
!
Narahari (Hari) Allamraju
!
java developer; python enthusiast
working with messaging systems for 9.5 years
!
http://github.com/supercoderz anarahari@gmail.com
Mess
everyone talks to everyone
Messaging
everyone talks to everyone through a single medium
Work Queue
everyone queues their tasks at the same place and waits
for the results
So you want
to build a
loosely
coupled app
!
!
what do you need to do?
The basics
• Will the application benefit by
splitting up into components?
• What are the components? How
are they dependent on each
other?
• Do we need more than one
instance of each to cope up
with the load?
• Do we need newer components
to handle certain cases that
arise from the new messaging
layer?
Identify the patterns
• What sort of interface do we
need - request-reply, publish
subscribe or queuing?
• Do we need to separate out
messages into various types?
• Do we need schemas for the
messages or free form?
• Are there any components that
have a higher or lower
throughput than others?
Latency, routing, priority
• Which components need the
message yesterday; and which
can wait till end of day?
• Do we need to expire
messages when they are too
late?
• How easily can we route
messages?
• Can we make some messages
take highest priority?
Build, Manage and Support
• Do we have a suitable API?
• Easy to provision and manage
• Good monitoring
• Guaranteed delivery of
messages
• Should be persist messages to
disk for crash recovery?
• Cleanup in case of issues
A few options
• RabbitMQ
• ZeroMQ
• Redis
• RDBMS or NOSQL database
• RPC
Considering future growth
• What if the loads increased by
15%?
• What if we had a consistent
heavy run for 24 hours or more?
• Storage costs etc
• If we have to switch to a
different underlying - how hard
is it?
Tokyo Metro
Questions!
• This presentation can be
found on slideshare at -
http://goo.gl/KVJxoE
!
• The version with speaker
notes will be available
soon
!
• you can also email me at
anarahari@gmail.com

Contenu connexe

Tendances

VersionEye for PHP User Group Berlin
VersionEye for PHP User Group BerlinVersionEye for PHP User Group Berlin
VersionEye for PHP User Group Berlin
Robert Reiz
 
Scaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N BartlettScaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N Bartlett
mfrancis
 

Tendances (16)

Api crash
Api crashApi crash
Api crash
 
Scaling Uber
Scaling UberScaling Uber
Scaling Uber
 
Facilitating Idiomatic Swift with Objective-C
Facilitating Idiomatic Swift with Objective-CFacilitating Idiomatic Swift with Objective-C
Facilitating Idiomatic Swift with Objective-C
 
VersionEye for PHP User Group Berlin
VersionEye for PHP User Group BerlinVersionEye for PHP User Group Berlin
VersionEye for PHP User Group Berlin
 
APIBAN: Protecting you from unwanted SIP traffic. Fred Posner
APIBAN: Protecting you from unwanted SIP traffic. Fred PosnerAPIBAN: Protecting you from unwanted SIP traffic. Fred Posner
APIBAN: Protecting you from unwanted SIP traffic. Fred Posner
 
Polyglot
PolyglotPolyglot
Polyglot
 
Becoming fully buzzword compliant
Becoming fully buzzword compliantBecoming fully buzzword compliant
Becoming fully buzzword compliant
 
Scaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N BartlettScaling and Orchestrating Microservices with OSGi - N Bartlett
Scaling and Orchestrating Microservices with OSGi - N Bartlett
 
Api FUNdamentals #MHA2017
Api FUNdamentals #MHA2017Api FUNdamentals #MHA2017
Api FUNdamentals #MHA2017
 
PHP - Programming language war, does it matter
PHP - Programming language war, does it matterPHP - Programming language war, does it matter
PHP - Programming language war, does it matter
 
Career Advice for Programmers
Career Advice for Programmers Career Advice for Programmers
Career Advice for Programmers
 
Kotlin Multiplatfom In Action
Kotlin Multiplatfom In ActionKotlin Multiplatfom In Action
Kotlin Multiplatfom In Action
 
Vs java (1)
Vs java (1)Vs java (1)
Vs java (1)
 
Building the ideal betting stack | London Erlang User Group presentation
Building the ideal betting stack | London Erlang User Group presentationBuilding the ideal betting stack | London Erlang User Group presentation
Building the ideal betting stack | London Erlang User Group presentation
 
Software Versioining: A Time Travel Problem in Software Engineering
Software Versioining: A Time Travel Problem in Software EngineeringSoftware Versioining: A Time Travel Problem in Software Engineering
Software Versioining: A Time Travel Problem in Software Engineering
 
Useful automation
Useful automationUseful automation
Useful automation
 

En vedette (7)

The Chubby lock service for loosely- coupled distributed systems
The Chubby lock service for loosely- coupled distributed systems The Chubby lock service for loosely- coupled distributed systems
The Chubby lock service for loosely- coupled distributed systems
 
Distributed operating system(os)
Distributed operating system(os)Distributed operating system(os)
Distributed operating system(os)
 
Distributed Operating System_1
Distributed Operating System_1Distributed Operating System_1
Distributed Operating System_1
 
Fault tolerance in distributed systems
Fault tolerance in distributed systemsFault tolerance in distributed systems
Fault tolerance in distributed systems
 
Foult Tolerence In Distributed System
Foult Tolerence In Distributed SystemFoult Tolerence In Distributed System
Foult Tolerence In Distributed System
 
Distributed Systems
Distributed SystemsDistributed Systems
Distributed Systems
 
Unit 1 architecture of distributed systems
Unit 1 architecture of distributed systemsUnit 1 architecture of distributed systems
Unit 1 architecture of distributed systems
 

Similaire à Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

Similaire à Which messaging layer to use in a loosely coupled distributed app (no speaker notes) (20)

Multi-Team Development w Ember, Angular, Knockout etc @ Interactive Intelligence
Multi-Team Development w Ember, Angular, Knockout etc @ Interactive IntelligenceMulti-Team Development w Ember, Angular, Knockout etc @ Interactive Intelligence
Multi-Team Development w Ember, Angular, Knockout etc @ Interactive Intelligence
 
Translation technology plugging the gaps_ecpd
Translation technology plugging the gaps_ecpdTranslation technology plugging the gaps_ecpd
Translation technology plugging the gaps_ecpd
 
Sharing our best secrets: Design a distributed system from scratch
Sharing our best secrets: Design a distributed system from scratchSharing our best secrets: Design a distributed system from scratch
Sharing our best secrets: Design a distributed system from scratch
 
SACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices EnvironmentSACon 2019 - Surviving in a Microservices Environment
SACon 2019 - Surviving in a Microservices Environment
 
Choosing Hippo CMS
Choosing Hippo CMSChoosing Hippo CMS
Choosing Hippo CMS
 
How to prepare your site for content migration
How to prepare your site for content migrationHow to prepare your site for content migration
How to prepare your site for content migration
 
Technology Development in Early Stage Startup Indonesia
Technology Development in Early Stage Startup IndonesiaTechnology Development in Early Stage Startup Indonesia
Technology Development in Early Stage Startup Indonesia
 
Putting Compilers to Work
Putting Compilers to WorkPutting Compilers to Work
Putting Compilers to Work
 
Facilitating Continuous Delivery at Scale
Facilitating Continuous Delivery at ScaleFacilitating Continuous Delivery at Scale
Facilitating Continuous Delivery at Scale
 
Akka.Net Ottawa .NET User Group Meetup
Akka.Net Ottawa .NET User Group Meetup Akka.Net Ottawa .NET User Group Meetup
Akka.Net Ottawa .NET User Group Meetup
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
Surviving in a microservices environment
Surviving in a microservices environmentSurviving in a microservices environment
Surviving in a microservices environment
 
CMS Integration
CMS IntegrationCMS Integration
CMS Integration
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building Products
 
GoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at ApceraGoSF Summerfest - Why Go at Apcera
GoSF Summerfest - Why Go at Apcera
 
What ya gonna do?
What ya gonna do?What ya gonna do?
What ya gonna do?
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015
 
Opening the Black Box of Software Localization
Opening the Black Box of Software LocalizationOpening the Black Box of Software Localization
Opening the Black Box of Software Localization
 
DevOps: Automate all the things
DevOps: Automate all the thingsDevOps: Automate all the things
DevOps: Automate all the things
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
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
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
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
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

Which messaging layer to use in a loosely coupled distributed app (no speaker notes)

  • 1. Which messaging layer to use in a loosely coupled distributed app? ! Narahari (Hari) Allamraju ! java developer; python enthusiast working with messaging systems for 9.5 years ! http://github.com/supercoderz anarahari@gmail.com
  • 3. Messaging everyone talks to everyone through a single medium
  • 4. Work Queue everyone queues their tasks at the same place and waits for the results
  • 5. So you want to build a loosely coupled app ! ! what do you need to do?
  • 6. The basics • Will the application benefit by splitting up into components? • What are the components? How are they dependent on each other? • Do we need more than one instance of each to cope up with the load? • Do we need newer components to handle certain cases that arise from the new messaging layer?
  • 7. Identify the patterns • What sort of interface do we need - request-reply, publish subscribe or queuing? • Do we need to separate out messages into various types? • Do we need schemas for the messages or free form? • Are there any components that have a higher or lower throughput than others?
  • 8. Latency, routing, priority • Which components need the message yesterday; and which can wait till end of day? • Do we need to expire messages when they are too late? • How easily can we route messages? • Can we make some messages take highest priority?
  • 9. Build, Manage and Support • Do we have a suitable API? • Easy to provision and manage • Good monitoring • Guaranteed delivery of messages • Should be persist messages to disk for crash recovery? • Cleanup in case of issues
  • 10. A few options • RabbitMQ • ZeroMQ • Redis • RDBMS or NOSQL database • RPC
  • 11. Considering future growth • What if the loads increased by 15%? • What if we had a consistent heavy run for 24 hours or more? • Storage costs etc • If we have to switch to a different underlying - how hard is it? Tokyo Metro
  • 12. Questions! • This presentation can be found on slideshare at - http://goo.gl/KVJxoE ! • The version with speaker notes will be available soon ! • you can also email me at anarahari@gmail.com