Rabbitmq Boot System

Alvaro Videla
Alvaro VidelaSoftware Developer at Pivotal
RabbitMQ Boot System
                             Alvaro Videla - Zürich Erlang User Group




Wednesday, December 12, 12
About Me
                   •         Developer Advocate for Cloud Foundry

                   •         Blog: http://videlalvaro.github.com/

                   •         Twitter: @old_sound




Wednesday, December 12, 12
About Me
                       Co-authored

              RabbitMQ in Action
             http://bit.ly/rabbitmq




Wednesday, December 12, 12
RabbitMQ

Wednesday, December 12, 12
Quick Demo



Wednesday, December 12, 12
RabbitMQ Boot Steps

               https://github.com/videlalvaro/rabbit-internals/blob/master/rabbit_boot_process.md




Wednesday, December 12, 12
RabbitMQ Boot Steps

           Take care of starting the many sub
            systems that compose RabbitMQ
           respecting order and dependencies



Wednesday, December 12, 12
RabbitMQ Boot Steps

           Take care of starting the many sub
            systems that compose RabbitMQ
           respecting order and dependencies

                              brainchild of @leastfixedpoint

Wednesday, December 12, 12
Subsystems

                   • external infrastructure
                   • kernel (rabbit kernel)
                   • core
                   • routing

Wednesday, December 12, 12
RabbitMQ Boot Steps




Wednesday, December 12, 12
RabbitMQ Boot Steps

           -rabbit_boot_step({recovery,
                              [{description,
                                        "exchange, queue and binding
                               recovery"},
                               {mfa,         {rabbit, recover, []}},
                               {requires,    empty_db_check},
                               {enables,     routing_ready}]}).




Wednesday, December 12, 12
RabbitMQ Boot Steps

              -rabbit_boot_step({msg_store_bitcask_index,
                     [{description,
                          "Bitcask Index for rabbit_msg_store"},
                      {mfa, {application, set_env,
                          [rabbit, msg_store_index_module, ?MODULE]}},
                      {enables, recovery}]}).




                             Modify Configuration at Startup


Wednesday, December 12, 12
RabbitMQ Boot Steps


              -rabbit_boot_step({external_infrastructure,
                    [{description, "external infrastructure ready"}]}).




                                Grouping Boot Steps


Wednesday, December 12, 12
RabbitMQ Boot Steps


                             How do they
                             actually work?


Wednesday, December 12, 12
Magic

Wednesday, December 12, 12
Erlang Modules

      -module(m).            % module attribute
      -export([fact/1]).     % module attribute
      -behaviour(Behaviour). % module attribute




Wednesday, December 12, 12
Module Attributes


                              -Tag(Value).




Wednesday, December 12, 12
RabbitMQ Boot Steps


              - rabbit_misc:all_module_attributes/1
              - rabbit_misc:module_attributes/1




Wednesday, December 12, 12
RabbitMQ Boot Steps


              - rabbit:boot_steps/0
              - rabbit:sort_bootsteps/1
              - rabbit_misc:build_acyclic_graph/3




Wednesday, December 12, 12
RabbitMQ Boot Steps

                   • Add order
                   • Add flexibility
                   • Very powerful tool
                   • Hidden gem in the Erlang world

Wednesday, December 12, 12
Thanks!



Wednesday, December 12, 12
1 of 21

Recommended

Taming the rabbit by
Taming the rabbitTaming the rabbit
Taming the rabbitAlvaro Videla
17.1K views62 slides
Fight with Metaspace OOM by
Fight with Metaspace OOMFight with Metaspace OOM
Fight with Metaspace OOMLeon Chen
1.3K views96 slides
淺談 Java GC 原理、調教和 新發展 by
淺談 Java GC 原理、調教和新發展淺談 Java GC 原理、調教和新發展
淺談 Java GC 原理、調教和 新發展Leon Chen
12.2K views80 slides
Toward 10,000 Containers on OpenStack by
Toward 10,000 Containers on OpenStackToward 10,000 Containers on OpenStack
Toward 10,000 Containers on OpenStackTon Ngo
321 views33 slides
Hazelcast by
HazelcastHazelcast
Hazelcastoztalip
11K views40 slides
Distributed Lock Manager by
Distributed Lock ManagerDistributed Lock Manager
Distributed Lock ManagerHao Chen
1.7K views20 slides

More Related Content

What's hot

Puppet Camp Dublin - 06/2012 by
Puppet Camp Dublin - 06/2012Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012Roland Tritsch
419 views16 slides
Java & containers: What I wish I knew before I used it | DevNation Tech Talk by
Java & containers: What I wish I knew before I used it | DevNation Tech TalkJava & containers: What I wish I knew before I used it | DevNation Tech Talk
Java & containers: What I wish I knew before I used it | DevNation Tech TalkRed Hat Developers
3.9K views28 slides
NYC Cassandra Day - Java Intro by
NYC Cassandra Day - Java IntroNYC Cassandra Day - Java Intro
NYC Cassandra Day - Java IntroChristopher Batey
1.2K views28 slides
LJC: Microservices in the real world by
LJC: Microservices in the real worldLJC: Microservices in the real world
LJC: Microservices in the real worldChristopher Batey
1.4K views61 slides
Hazelcast by
HazelcastHazelcast
HazelcastBruno Lellis
856 views18 slides
Don't dump thread dumps by
Don't dump thread dumpsDon't dump thread dumps
Don't dump thread dumpsTier1 App
1.2K views22 slides

What's hot(20)

Puppet Camp Dublin - 06/2012 by Roland Tritsch
Puppet Camp Dublin - 06/2012Puppet Camp Dublin - 06/2012
Puppet Camp Dublin - 06/2012
Roland Tritsch419 views
Java & containers: What I wish I knew before I used it | DevNation Tech Talk by Red Hat Developers
Java & containers: What I wish I knew before I used it | DevNation Tech TalkJava & containers: What I wish I knew before I used it | DevNation Tech Talk
Java & containers: What I wish I knew before I used it | DevNation Tech Talk
Red Hat Developers3.9K views
Don't dump thread dumps by Tier1 App
Don't dump thread dumpsDon't dump thread dumps
Don't dump thread dumps
Tier1 App1.2K views
Go Programming Patterns by Hao Chen
Go Programming PatternsGo Programming Patterns
Go Programming Patterns
Hao Chen3.2K views
Cassandra Summit 2015: Real World DTCS For Operators by Jeff Jirsa
Cassandra Summit 2015: Real World DTCS For OperatorsCassandra Summit 2015: Real World DTCS For Operators
Cassandra Summit 2015: Real World DTCS For Operators
Jeff Jirsa5.6K views
Devon 2011-f-4-improve your-javascript by Daum DNA
Devon 2011-f-4-improve your-javascriptDevon 2011-f-4-improve your-javascript
Devon 2011-f-4-improve your-javascript
Daum DNA684 views
Scaling Jakarta EE Applications Vertically and Horizontally with Jelastic PaaS by Jelastic Multi-Cloud PaaS
Scaling Jakarta EE Applications Vertically and Horizontally with Jelastic PaaSScaling Jakarta EE Applications Vertically and Horizontally with Jelastic PaaS
Scaling Jakarta EE Applications Vertically and Horizontally with Jelastic PaaS
Don't dump thread dumps by Tier1app
Don't dump thread dumpsDon't dump thread dumps
Don't dump thread dumps
Tier1app634 views
Mesosphere and Contentteam: A New Way to Run Cassandra by DataStax Academy
Mesosphere and Contentteam: A New Way to Run CassandraMesosphere and Contentteam: A New Way to Run Cassandra
Mesosphere and Contentteam: A New Way to Run Cassandra
DataStax Academy2.4K views
Connect2016 AD1387 Integrate with XPages and Java by Julian Robichaux
Connect2016 AD1387 Integrate with XPages and JavaConnect2016 AD1387 Integrate with XPages and Java
Connect2016 AD1387 Integrate with XPages and Java
Julian Robichaux613 views
Non-blocking synchronization — what is it and why we (don't?) need it by Alexey Fyodorov
Non-blocking synchronization — what is it and why we (don't?) need itNon-blocking synchronization — what is it and why we (don't?) need it
Non-blocking synchronization — what is it and why we (don't?) need it
Alexey Fyodorov2K views
Cassandra Day NY 2014: Getting Started with the DataStax C# Driver by DataStax Academy
Cassandra Day NY 2014: Getting Started with the DataStax C# DriverCassandra Day NY 2014: Getting Started with the DataStax C# Driver
Cassandra Day NY 2014: Getting Started with the DataStax C# Driver
DataStax Academy7.2K views
jcmd #javacasual by Yuji Kubota
jcmd #javacasualjcmd #javacasual
jcmd #javacasual
Yuji Kubota16.9K views
Openstack Magnum: Container-as-a-Service by Chhavi Agarwal
Openstack Magnum: Container-as-a-ServiceOpenstack Magnum: Container-as-a-Service
Openstack Magnum: Container-as-a-Service
Chhavi Agarwal2.1K views
Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ... by DataStax
Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ...Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ...
Cassandra Backups and Restorations Using Ansible (Joshua Wickman, Knewton) | ...
DataStax4.9K views
The OSSCube MySQL High Availability Tutorial by OSSCube
The OSSCube MySQL High Availability TutorialThe OSSCube MySQL High Availability Tutorial
The OSSCube MySQL High Availability Tutorial
OSSCube2.9K views

Viewers also liked

Integrating PostgreSql with RabbitMQ by
Integrating PostgreSql with RabbitMQIntegrating PostgreSql with RabbitMQ
Integrating PostgreSql with RabbitMQGavin Roy
15.8K views33 slides
PostgreSQL: meet your queue by
PostgreSQL: meet your queuePostgreSQL: meet your queue
PostgreSQL: meet your queueTheo Schlossnagle
5.9K views13 slides
Dissecting the rabbit: RabbitMQ Internal Architecture by
Dissecting the rabbit: RabbitMQ Internal ArchitectureDissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal ArchitectureAlvaro Videla
28.5K views105 slides
Pg amqp by
Pg amqpPg amqp
Pg amqpCommand Prompt., Inc
2.8K views13 slides
BayLISA meetup: 8/16/12 by
BayLISA meetup: 8/16/12BayLISA meetup: 8/16/12
BayLISA meetup: 8/16/12bcantrill
4.9K views8 slides
Fi fo euc 2014 by
Fi fo euc 2014Fi fo euc 2014
Fi fo euc 2014Licenser
1.3K views30 slides

Viewers also liked(15)

Integrating PostgreSql with RabbitMQ by Gavin Roy
Integrating PostgreSql with RabbitMQIntegrating PostgreSql with RabbitMQ
Integrating PostgreSql with RabbitMQ
Gavin Roy15.8K views
Dissecting the rabbit: RabbitMQ Internal Architecture by Alvaro Videla
Dissecting the rabbit: RabbitMQ Internal ArchitectureDissecting the rabbit: RabbitMQ Internal Architecture
Dissecting the rabbit: RabbitMQ Internal Architecture
Alvaro Videla28.5K views
BayLISA meetup: 8/16/12 by bcantrill
BayLISA meetup: 8/16/12BayLISA meetup: 8/16/12
BayLISA meetup: 8/16/12
bcantrill4.9K views
Fi fo euc 2014 by Licenser
Fi fo euc 2014Fi fo euc 2014
Fi fo euc 2014
Licenser1.3K views
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef by Chef Software, Inc.
The Kitchen Cloud How To: Automating Joyent SmartMachines with ChefThe Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
The Kitchen Cloud How To: Automating Joyent SmartMachines with Chef
Chef Software, Inc.4.7K views
Chef on SmartOS by Eric Saxby
Chef on SmartOSChef on SmartOS
Chef on SmartOS
Eric Saxby2K views
SmartOS ZFS Architecture by Bill Pijewski
SmartOS ZFS ArchitectureSmartOS ZFS Architecture
SmartOS ZFS Architecture
Bill Pijewski4.5K views
Introduction to RabbitMQ | Meetup at Pivotal Labs by Alvaro Videla
Introduction to RabbitMQ | Meetup at Pivotal LabsIntroduction to RabbitMQ | Meetup at Pivotal Labs
Introduction to RabbitMQ | Meetup at Pivotal Labs
Alvaro Videla5.3K views
Experiences porting KVM to SmartOS by bcantrill
Experiences porting KVM to SmartOSExperiences porting KVM to SmartOS
Experiences porting KVM to SmartOS
bcantrill9.4K views
Steve Jobs Inspirational Quotes by InsideView
Steve Jobs Inspirational QuotesSteve Jobs Inspirational Quotes
Steve Jobs Inspirational Quotes
InsideView204K views

Similar to Rabbitmq Boot System

Practicing Continuous Deployment by
Practicing Continuous DeploymentPracticing Continuous Deployment
Practicing Continuous Deploymentzeeg
2.8K views38 slides
When Ruby Meets Java - The Power of Torquebox by
When Ruby Meets Java - The Power of TorqueboxWhen Ruby Meets Java - The Power of Torquebox
When Ruby Meets Java - The Power of Torqueboxrockyjaiswal
6.7K views26 slides
Rapid Home Provisioning by
Rapid Home ProvisioningRapid Home Provisioning
Rapid Home ProvisioningLudovico Caldara
10.1K views60 slides
Cassandra - PHP by
Cassandra - PHPCassandra - PHP
Cassandra - PHPmauritsl
6.9K views144 slides
Cloudstack talk by
Cloudstack talkCloudstack talk
Cloudstack talkbodepd
1.1K views40 slides
Grails 2.0 Update by
Grails 2.0 UpdateGrails 2.0 Update
Grails 2.0 UpdatePeter Ledbrook
3.6K views43 slides

Similar to Rabbitmq Boot System(20)

Practicing Continuous Deployment by zeeg
Practicing Continuous DeploymentPracticing Continuous Deployment
Practicing Continuous Deployment
zeeg2.8K views
When Ruby Meets Java - The Power of Torquebox by rockyjaiswal
When Ruby Meets Java - The Power of TorqueboxWhen Ruby Meets Java - The Power of Torquebox
When Ruby Meets Java - The Power of Torquebox
rockyjaiswal6.7K views
Cassandra - PHP by mauritsl
Cassandra - PHPCassandra - PHP
Cassandra - PHP
mauritsl6.9K views
Cloudstack talk by bodepd
Cloudstack talkCloudstack talk
Cloudstack talk
bodepd1.1K views
Using Puppet and Cobbler to Automate Your Infrastructure by Phil Windley
Using Puppet and Cobbler to Automate Your InfrastructureUsing Puppet and Cobbler to Automate Your Infrastructure
Using Puppet and Cobbler to Automate Your Infrastructure
Phil Windley9.4K views
Standing on the shoulders of giants with JRuby by Theo Hultberg
Standing on the shoulders of giants with JRubyStanding on the shoulders of giants with JRuby
Standing on the shoulders of giants with JRuby
Theo Hultberg1.9K views
Puppet: Orchestration framework? by bodepd
Puppet: Orchestration framework?Puppet: Orchestration framework?
Puppet: Orchestration framework?
bodepd1.1K views
What's New in the PHP Driver by MongoDB
What's New in the PHP DriverWhat's New in the PHP Driver
What's New in the PHP Driver
MongoDB863 views
Use Your MySQL Knowledge to Become a MongoDB Guru by Tim Callaghan
Use Your MySQL Knowledge to Become a MongoDB GuruUse Your MySQL Knowledge to Become a MongoDB Guru
Use Your MySQL Knowledge to Become a MongoDB Guru
Tim Callaghan3.4K views
CapitalCamp Features by Phase2
CapitalCamp FeaturesCapitalCamp Features
CapitalCamp Features
Phase2454 views
Cloud Messaging With Cloud Foundry by Alvaro Videla
Cloud Messaging With Cloud FoundryCloud Messaging With Cloud Foundry
Cloud Messaging With Cloud Foundry
Alvaro Videla2.1K views
Dynamic poly-preso by Scott Shaw
Dynamic poly-presoDynamic poly-preso
Dynamic poly-preso
Scott Shaw373 views
TripCase Unit Testing with Jasmine by Stephen Pond
TripCase Unit Testing with JasmineTripCase Unit Testing with Jasmine
TripCase Unit Testing with Jasmine
Stephen Pond729 views
Ruxcon Finding Needles in Haystacks (the size of countries) by packetloop
Ruxcon Finding Needles in Haystacks (the size of countries)Ruxcon Finding Needles in Haystacks (the size of countries)
Ruxcon Finding Needles in Haystacks (the size of countries)
packetloop1.2K views
Disconnecting the Database with ActiveRecord by Ben Mabey
Disconnecting the Database with ActiveRecordDisconnecting the Database with ActiveRecord
Disconnecting the Database with ActiveRecord
Ben Mabey1.3K views
Performance Schema in MySQL (Danil Zburivsky) by Ontico
Performance Schema in MySQL (Danil Zburivsky)Performance Schema in MySQL (Danil Zburivsky)
Performance Schema in MySQL (Danil Zburivsky)
Ontico1.5K views

More from Alvaro Videla

Improvements in RabbitMQ by
Improvements in RabbitMQImprovements in RabbitMQ
Improvements in RabbitMQAlvaro Videla
3.6K views58 slides
Data Migration at Scale with RabbitMQ and Spring Integration by
Data Migration at Scale with RabbitMQ and Spring IntegrationData Migration at Scale with RabbitMQ and Spring Integration
Data Migration at Scale with RabbitMQ and Spring IntegrationAlvaro Videla
2.4K views53 slides
RabbitMQ Data Ingestion at Craft Conf by
RabbitMQ Data Ingestion at Craft ConfRabbitMQ Data Ingestion at Craft Conf
RabbitMQ Data Ingestion at Craft ConfAlvaro Videla
3.6K views117 slides
Scaling applications with RabbitMQ at SunshinePHP by
Scaling applications with RabbitMQ   at SunshinePHPScaling applications with RabbitMQ   at SunshinePHP
Scaling applications with RabbitMQ at SunshinePHPAlvaro Videla
5.5K views149 slides
Unit Test + Functional Programming = Love by
Unit Test + Functional Programming = LoveUnit Test + Functional Programming = Love
Unit Test + Functional Programming = LoveAlvaro Videla
16.9K views68 slides
Writing testable code by
Writing testable codeWriting testable code
Writing testable codeAlvaro Videla
8.4K views57 slides

More from Alvaro Videla(20)

Improvements in RabbitMQ by Alvaro Videla
Improvements in RabbitMQImprovements in RabbitMQ
Improvements in RabbitMQ
Alvaro Videla3.6K views
Data Migration at Scale with RabbitMQ and Spring Integration by Alvaro Videla
Data Migration at Scale with RabbitMQ and Spring IntegrationData Migration at Scale with RabbitMQ and Spring Integration
Data Migration at Scale with RabbitMQ and Spring Integration
Alvaro Videla2.4K views
RabbitMQ Data Ingestion at Craft Conf by Alvaro Videla
RabbitMQ Data Ingestion at Craft ConfRabbitMQ Data Ingestion at Craft Conf
RabbitMQ Data Ingestion at Craft Conf
Alvaro Videla3.6K views
Scaling applications with RabbitMQ at SunshinePHP by Alvaro Videla
Scaling applications with RabbitMQ   at SunshinePHPScaling applications with RabbitMQ   at SunshinePHP
Scaling applications with RabbitMQ at SunshinePHP
Alvaro Videla5.5K views
Unit Test + Functional Programming = Love by Alvaro Videla
Unit Test + Functional Programming = LoveUnit Test + Functional Programming = Love
Unit Test + Functional Programming = Love
Alvaro Videla16.9K views
Writing testable code by Alvaro Videla
Writing testable codeWriting testable code
Writing testable code
Alvaro Videla8.4K views
Cloud Foundry Bootcamp by Alvaro Videla
Cloud Foundry BootcampCloud Foundry Bootcamp
Cloud Foundry Bootcamp
Alvaro Videla2.5K views
Código Fácil De Testear by Alvaro Videla
Código Fácil De TestearCódigo Fácil De Testear
Código Fácil De Testear
Alvaro Videla2.4K views
Desacoplando aplicaciones by Alvaro Videla
Desacoplando aplicacionesDesacoplando aplicaciones
Desacoplando aplicaciones
Alvaro Videla1.4K views
Theres a rabbit on my symfony by Alvaro Videla
Theres a rabbit on my symfonyTheres a rabbit on my symfony
Theres a rabbit on my symfony
Alvaro Videla83.5K views
Scaling Web Apps With RabbitMQ - Erlang Factory Lite by Alvaro Videla
Scaling Web Apps With RabbitMQ - Erlang Factory LiteScaling Web Apps With RabbitMQ - Erlang Factory Lite
Scaling Web Apps With RabbitMQ - Erlang Factory Lite
Alvaro Videla4K views
Integrating php withrabbitmq_zendcon by Alvaro Videla
Integrating php withrabbitmq_zendconIntegrating php withrabbitmq_zendcon
Integrating php withrabbitmq_zendcon
Alvaro Videla16.5K views
Scaling webappswithrabbitmq by Alvaro Videla
Scaling webappswithrabbitmqScaling webappswithrabbitmq
Scaling webappswithrabbitmq
Alvaro Videla1.4K views
Integrating RabbitMQ with PHP by Alvaro Videla
Integrating RabbitMQ with PHPIntegrating RabbitMQ with PHP
Integrating RabbitMQ with PHP
Alvaro Videla24K views
Integrating Erlang with PHP by Alvaro Videla
Integrating Erlang with PHPIntegrating Erlang with PHP
Integrating Erlang with PHP
Alvaro Videla6.7K views
Interoperability With RabbitMq by Alvaro Videla
Interoperability With RabbitMqInteroperability With RabbitMq
Interoperability With RabbitMq
Alvaro Videla6K views
Debugging and Profiling Symfony Apps by Alvaro Videla
Debugging and Profiling Symfony AppsDebugging and Profiling Symfony Apps
Debugging and Profiling Symfony Apps
Alvaro Videla21.1K views

Recently uploaded

Future of AR - Facebook Presentation by
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook PresentationRob McCarty
62 views27 slides
The Power of Heat Decarbonisation Plans in the Built Environment by
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built EnvironmentIES VE
69 views20 slides
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...ShapeBlue
120 views13 slides
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...ShapeBlue
117 views25 slides
DRBD Deep Dive - Philipp Reisner - LINBIT by
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBITShapeBlue
140 views21 slides
20231123_Camunda Meetup Vienna.pdf by
20231123_Camunda Meetup Vienna.pdf20231123_Camunda Meetup Vienna.pdf
20231123_Camunda Meetup Vienna.pdfPhactum Softwareentwicklung GmbH
50 views73 slides

Recently uploaded(20)

Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty62 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE69 views
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by ShapeBlue
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
ShapeBlue120 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue117 views
DRBD Deep Dive - Philipp Reisner - LINBIT by ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue140 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu365 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays53 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue154 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue166 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue93 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue176 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10126 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software385 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue181 views

Rabbitmq Boot System

  • 1. RabbitMQ Boot System Alvaro Videla - Zürich Erlang User Group Wednesday, December 12, 12
  • 2. About Me • Developer Advocate for Cloud Foundry • Blog: http://videlalvaro.github.com/ • Twitter: @old_sound Wednesday, December 12, 12
  • 3. About Me Co-authored RabbitMQ in Action http://bit.ly/rabbitmq Wednesday, December 12, 12
  • 6. RabbitMQ Boot Steps https://github.com/videlalvaro/rabbit-internals/blob/master/rabbit_boot_process.md Wednesday, December 12, 12
  • 7. RabbitMQ Boot Steps Take care of starting the many sub systems that compose RabbitMQ respecting order and dependencies Wednesday, December 12, 12
  • 8. RabbitMQ Boot Steps Take care of starting the many sub systems that compose RabbitMQ respecting order and dependencies brainchild of @leastfixedpoint Wednesday, December 12, 12
  • 9. Subsystems • external infrastructure • kernel (rabbit kernel) • core • routing Wednesday, December 12, 12
  • 11. RabbitMQ Boot Steps -rabbit_boot_step({recovery, [{description, "exchange, queue and binding recovery"}, {mfa, {rabbit, recover, []}}, {requires, empty_db_check}, {enables, routing_ready}]}). Wednesday, December 12, 12
  • 12. RabbitMQ Boot Steps -rabbit_boot_step({msg_store_bitcask_index, [{description, "Bitcask Index for rabbit_msg_store"}, {mfa, {application, set_env, [rabbit, msg_store_index_module, ?MODULE]}}, {enables, recovery}]}). Modify Configuration at Startup Wednesday, December 12, 12
  • 13. RabbitMQ Boot Steps -rabbit_boot_step({external_infrastructure, [{description, "external infrastructure ready"}]}). Grouping Boot Steps Wednesday, December 12, 12
  • 14. RabbitMQ Boot Steps How do they actually work? Wednesday, December 12, 12
  • 16. Erlang Modules -module(m). % module attribute -export([fact/1]). % module attribute -behaviour(Behaviour). % module attribute Wednesday, December 12, 12
  • 17. Module Attributes -Tag(Value). Wednesday, December 12, 12
  • 18. RabbitMQ Boot Steps - rabbit_misc:all_module_attributes/1 - rabbit_misc:module_attributes/1 Wednesday, December 12, 12
  • 19. RabbitMQ Boot Steps - rabbit:boot_steps/0 - rabbit:sort_bootsteps/1 - rabbit_misc:build_acyclic_graph/3 Wednesday, December 12, 12
  • 20. RabbitMQ Boot Steps • Add order • Add flexibility • Very powerful tool • Hidden gem in the Erlang world Wednesday, December 12, 12