Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducing Openstack Marconi

Introducing Openstack Marconi

This covers the Openstack Marconi service: Queuing as a Service. Answers the how, what, and why of Marconi, dives into the API and the architecture, and discusses the future of the project.

C5a42c83f8bf76e08365496916f65634?s=128

Alejandro Cabrera

July 17, 2013
Tweet

Transcript

  1. Message Queues as a Service: Introducing Marconi Alejandro Cabrera (alejandro.cabrera@rackspace.com)

    July 17, 2013 Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  2. from pprint import pprint if __name__ == ’__main__’: meta =

    { ’author’ : ’Alejandro Cabrera’, ’email’ : ’alejandro.cabrera@rackspace.com’, ’objective’ : ’Introduce Marconi!’ } pprint(meta) Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  3. About Me Software developer @ Rackspace for almost a year

    Likes: Python, Linux, open-source, automation, quality, cordiality Dislikes: Proprietary, manual processes, hostility Github: cabrera Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  4. Overview Marconi: What, Why, How? Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues

    as a Service: Introducing Marconi
  5. Overview Marconi: What, Why, How? Marconi and You: Configuring Alejandro

    Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  6. Overview Marconi: What, Why, How? Marconi and You: Configuring Growing

    Marconi: Development and the Future Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  7. Marconi: Queuing for the Cloud Marconi is: Alejandro Cabrera (alejandro.cabrera@rackspace.com)

    Message Queues as a Service: Introducing Marconi
  8. Marconi: Queuing for the Cloud Marconi is: Queuing as a

    service: queues, messages, claims Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  9. Marconi: Queuing for the Cloud Marconi is: Queuing as a

    service: queues, messages, claims An HTTP-driven, mostly-RESTful API Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  10. Marconi: Queuing for the Cloud Marconi is: Queuing as a

    service: queues, messages, claims An HTTP-driven, mostly-RESTful API An Openstack hopeful Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  11. Marconi: Queuing for the Cloud Marconi is: Queuing as a

    service: queues, messages, claims An HTTP-driven, mostly-RESTful API An Openstack hopeful Open-source! Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  12. Marconi: Queuing for the Cloud Marconi is: Queuing as a

    service: queues, messages, claims An HTTP-driven, mostly-RESTful API An Openstack hopeful Open-source! Marconi is not: Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  13. Marconi: Queuing for the Cloud Marconi is: Queuing as a

    service: queues, messages, claims An HTTP-driven, mostly-RESTful API An Openstack hopeful Open-source! Marconi is not: A replacement for X (celery, zmq, rabbitmq) Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  14. Marconi: Queuing for the Cloud Marconi is: Queuing as a

    service: queues, messages, claims An HTTP-driven, mostly-RESTful API An Openstack hopeful Open-source! Marconi is not: A replacement for X (celery, zmq, rabbitmq) A message broker Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  15. Marconi: What’s In a Name? Guglielmo Marconi Alejandro Cabrera (alejandro.cabrera@rackspace.com)

    Message Queues as a Service: Introducing Marconi
  16. Marconi: What’s In a Name? Guglielmo Marconi An Italian inventor

    often credited with the invention of radio Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  17. Marconi: What’s In a Name? Guglielmo Marconi An Italian inventor

    often credited with the invention of radio Marconi (the service) is all about managing messages Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  18. Why Marconi? There was a need for a messsaging platform

    that is: Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  19. Why Marconi? There was a need for a messsaging platform

    that is: Open Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  20. Why Marconi? There was a need for a messsaging platform

    that is: Open Easy to use Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  21. Why Marconi? There was a need for a messsaging platform

    that is: Open Easy to use Scalable Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  22. Why Marconi? There was a need for a messsaging platform

    that is: Open Easy to use Scalable Extensible Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  23. Why Marconi? There was a need for a messsaging platform

    that is: Open Easy to use Scalable Extensible Marconi aims to fill those needs Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  24. Why Marconi Instead of. . . ? Amazon SQS? Alejandro

    Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  25. Why Marconi Instead of. . . ? Amazon SQS? SQS

    is closed - you can’t run your own instance Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  26. Why Marconi Instead of. . . ? Amazon SQS? SQS

    is closed - you can’t run your own instance Celery? Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  27. Why Marconi Instead of. . . ? Amazon SQS? SQS

    is closed - you can’t run your own instance Celery? Celery is a task-based service Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  28. Why Marconi Instead of. . . ? Amazon SQS? SQS

    is closed - you can’t run your own instance Celery? Celery is a task-based service It depends on a broker to handle the queuing aspects Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  29. Why Marconi Instead of. . . ? Amazon SQS? SQS

    is closed - you can’t run your own instance Celery? Celery is a task-based service It depends on a broker to handle the queuing aspects RabbitMQ, qpid, ZMQ? Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  30. Why Marconi Instead of. . . ? Amazon SQS? SQS

    is closed - you can’t run your own instance Celery? Celery is a task-based service It depends on a broker to handle the queuing aspects RabbitMQ, qpid, ZMQ? You have to scale them yourself Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  31. How Does it Work? Queues: create them! Alejandro Cabrera (alejandro.cabrera@rackspace.com)

    Message Queues as a Service: Introducing Marconi
  32. How Does it Work? Queues: create them! Messages: post them

    to queues (FIFO guaranteed) Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  33. How Does it Work? Queues: create them! Messages: post them

    to queues (FIFO guaranteed) Claims: workers claim messages Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  34. How Does it Work? Queues: create them! Messages: post them

    to queues (FIFO guaranteed) Claims: workers claim messages That’s all there is to it. Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  35. That’s All? Yes. Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a

    Service: Introducing Marconi
  36. That’s All? Yes. It’s up to you to build higher-level

    patterns: Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  37. That’s All? Yes. It’s up to you to build higher-level

    patterns: Response/request Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  38. That’s All? Yes. It’s up to you to build higher-level

    patterns: Response/request Publish/subscribe Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  39. That’s All? Yes. It’s up to you to build higher-level

    patterns: Response/request Publish/subscribe Master/slave Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  40. That’s All? Yes. It’s up to you to build higher-level

    patterns: Response/request Publish/subscribe Master/slave Producer(s)/Consumer(s) Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  41. Marconi: Configuration Marconi doesn’t try to limit you Alejandro Cabrera

    (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  42. Marconi: Configuration Marconi doesn’t try to limit you You can

    configure. . . : Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  43. Marconi: Configuration Marconi doesn’t try to limit you You can

    configure. . . : Logging details Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  44. Marconi: Configuration Marconi doesn’t try to limit you You can

    configure. . . : Logging details Transport drivers: wsgi, zmq Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  45. Marconi: Configuration Marconi doesn’t try to limit you You can

    configure. . . : Logging details Transport drivers: wsgi, zmq As well as transport-specific configuration! Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  46. Marconi: Configuration Marconi doesn’t try to limit you You can

    configure. . . : Logging details Transport drivers: wsgi, zmq As well as transport-specific configuration! Storage drivers Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  47. Marconi: Configuration Marconi doesn’t try to limit you You can

    configure. . . : Logging details Transport drivers: wsgi, zmq As well as transport-specific configuration! Storage drivers Messages: size (default: 256KB), batch size Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  48. Marconi: Configuration Marconi doesn’t try to limit you You can

    configure. . . : Logging details Transport drivers: wsgi, zmq As well as transport-specific configuration! Storage drivers Messages: size (default: 256KB), batch size Queues: name length Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  49. Marconi: Configuration Marconi doesn’t try to limit you You can

    configure. . . : Logging details Transport drivers: wsgi, zmq As well as transport-specific configuration! Storage drivers Messages: size (default: 256KB), batch size Queues: name length Philosophy: configure all the things! Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  50. Marconi: Can I Use it Now? Yes, with a caveat

    Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  51. Marconi: Can I Use it Now? Yes, with a caveat

    It’s pre-alpha status Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  52. Marconi: Can I Use it Now? Yes, with a caveat

    It’s pre-alpha status (Don’t run this in production!) Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  53. Marconi API: From the Top GET /v1 GET /v1/health Alejandro

    Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  54. Marconi API: Handling Queues PUT /v1/queues/{queue} GET /v1/queues{?marker,limit,detailed} PUT /v1/queues/{queue}

    GET /v1/queues/{queue} GET /v1/queues/{queue}/stats DELETE /v1/queues/{queue} Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  55. Marconi API: Messages! GET /v1/queues/{queue}/messages{?marker,limit,echo} GET /v1/queues/{queue}/messages/{message_id}{?claim_id} GET /v1/queues/{queue}/messages{?ids,claim_id} POST

    /v1/queues/{queue}/messages DELETE /v1/queues/{queue}/messages/{message_id}{?claim_id} Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  56. Marconi API: Claims Processing POST /v1/queues/{queue}/claims{?limit} GET /v1/queues/{queue}/claims/{claim_id} PATCH /v1/queues/{queue}/claims/{claim_id}

    DELETE /v1/queues/{queue}/claims/{claim_id} Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  57. Going Deeper: Internal Architecture Highly modular - driver-driven architecture Alejandro

    Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  58. Going Deeper: Internal Architecture Highly modular - driver-driven architecture Storage:

    sqlite, mongodb Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  59. Going Deeper: Internal Architecture Highly modular - driver-driven architecture Storage:

    sqlite, mongodb Transport: wsgi (zmq in the works) Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  60. Going Deeper: Internal Architecture Highly modular - driver-driven architecture Storage:

    sqlite, mongodb Transport: wsgi (zmq in the works) Authentication: keystone, nova, endpoint (client-side) Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  61. Going Deeper: Internal Architecture Highly modular - driver-driven architecture Storage:

    sqlite, mongodb Transport: wsgi (zmq in the works) Authentication: keystone, nova, endpoint (client-side) The idea is to be highly configurable Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  62. Going Deeper: Internal Architecture Highly modular - driver-driven architecture Storage:

    sqlite, mongodb Transport: wsgi (zmq in the works) Authentication: keystone, nova, endpoint (client-side) The idea is to be highly configurable You know what you need - you make the trade-offs Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  63. A Look at the Structure: Big Picture marconi |-- bootstrap.py

    |-- cmd # garbabe collector, standalone server process |-- common # shared utilities |-- __init__.py |-- openstack # openstack common code |-- storage # storage drivers |-- tests # test helpers |-- transport # transport drivers ‘-- version.py Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  64. A Look at the Structure: Storage storage/ |-- base.py |--

    exceptions.py |-- __init__.py |-- mongodb ‘-- sqlite Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  65. A Look at the Structure: Storage (MongoDB) storage/ |-- base.py

    |-- exceptions.py |-- __init__.py |-- mongodb | |-- claims.py | |-- controllers.py | |-- driver.py | |-- __init__.py | |-- messages.py | |-- options.py | |-- queues.py | ‘-- utils.py ‘-- sqlite Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  66. A Look at the Structure: Storage (sqlite) storage/ |-- base.py

    |-- exceptions.py |-- __init__.py |-- mongodb ‘-- sqlite # development driver |-- claims.py |-- controllers.py |-- driver.py |-- __init__.py |-- messages.py |-- queues.py ‘-- utils.py Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  67. A Look at the Structure: Transports transport/ |-- auth.py |--

    base.py |-- helpers.py |-- __init__.py |-- wsgi ‘-- zmq Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  68. A Look at the Structure: Transports (wsgi) transport/ |-- auth.py

    |-- base.py |-- helpers.py |-- __init__.py |-- wsgi | |-- app.py | |-- claims.py | |-- driver.py | |-- exceptions.py | |-- health.py | |-- helpers.py | |-- __init__.py | |-- messages.py | |-- queues.py | ‘-- stats.py ‘-- zmq Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  69. A Look at the Structure: Transports (zmq) transport/ |-- auth.py

    |-- base.py |-- helpers.py |-- __init__.py |-- wsgi ‘-- zmq ‘-- __init__.py Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  70. A Look at the Structure: Transports (zmq) transport/ |-- auth.py

    |-- base.py |-- helpers.py |-- __init__.py |-- wsgi ‘-- zmq ‘-- __init__.py # you can help make this happen! Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  71. Going Client-Side: Introducing python-marconiclient! You have a server, but now

    you need to work with it Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  72. Going Client-Side: Introducing python-marconiclient! You have a server, but now

    you need to work with it python-marconiclient is. . . : Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  73. Going Client-Side: Introducing python-marconiclient! You have a server, but now

    you need to work with it python-marconiclient is. . . : A Python API for communicating with a marconi server Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  74. Going Client-Side: Introducing python-marconiclient! You have a server, but now

    you need to work with it python-marconiclient is. . . : A Python API for communicating with a marconi server A CLI that accomplishes the same Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  75. Going Client-Side: Introducing python-marconiclient! You have a server, but now

    you need to work with it python-marconiclient is. . . : A Python API for communicating with a marconi server A CLI that accomplishes the same A reference implementation for alternate marconi clients Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  76. So. . . What Does it Look Like? >>> client

    = Client(conn, async=False) >>> client.queues(marker=..., limit=10, detailed=False) <generator object <genexpr> ar 0x7fd3ef1ed730> >>> client.create_queue(name=’darn_good_queue’, metadata=json.dumps({’game’: ’d2’ } ) ) <MarconiQueue [wot]> >>> client.home <HomeDoc ...> # affects all operations for objects # acquired from the client >>> client.async False Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  77. Client: Handling Queues >>> queue = next(q for q in

    client.queues if q.name == ’darn_good_queue’) >>> queue.name u’darn_good_queue’ >>> queue.stats <QueueStats ...> >>> queue.get_messages() <generator object <genexpr> ar 0x7fd3ef1ed742> >>> queue.get_messages(ids=[’50b68a50d6f5b8c8a7c62b’, ’50b68a50d6f5b8c8a7c62b’ ], claim=’a28ee94e-6cb4-11e2-b4’, limit=1) <generator object <genexpr> ar 0x7fd3ef1ed742> >>> queue.post_messages(messages=...) >>> queue.delete() Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  78. Client: Handling Queues (Metadata) >>> queue.metadata {’a’: 1, ’b’: 2}

    >>> queue.set_metadata({’a’: 2, ...}) Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  79. Client: Message Handling >>> message = next(queue.messages(...)) >>> message.age 90

    >>> message.ttl 120 >>> message.id u’9y22h21w2h’ >>> message.body {u’action’: u’win’} >>> message.delete() >>> message.status <EnumValue: Message.Free [value=1]> Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  80. Client: Claims >>> queue.claim(limit=10) <generator object <genexpr> ar 0x7fd3ef1ed742> >>>

    claim = queue.claim(limit=10) # identical to queue message fetch API, # with claim id pre-filled >>> claim.messages(...) <generator object <genexpr> ar 0x7fd3ef1ed742> >>> msg = next(claim.messages(...)) >>> msg.status <EnumValue: Message.Claimed [value=2]> Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  81. Client: Claims >>> claim.id ... >>> claim.ttl 90 >>> claim.age

    120 >>> claim.patch(ttl=..., grace=...) >>> claim.release() Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  82. Marconi & Openstack & You Currently: pre-incubation Alejandro Cabrera (alejandro.cabrera@rackspace.com)

    Message Queues as a Service: Introducing Marconi
  83. Marconi & Openstack & You Currently: pre-incubation We have the

    form, we have contributors (5-6) Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  84. Marconi & Openstack & You Currently: pre-incubation We have the

    form, we have contributors (5-6) (We need more conributors!) Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  85. Marconi & Openstack & You Currently: pre-incubation We have the

    form, we have contributors (5-6) (We need more conributors!) We keep our code: Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  86. Marconi & Openstack & You Currently: pre-incubation We have the

    form, we have contributors (5-6) (We need more conributors!) We keep our code: Here: server Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  87. Marconi & Openstack & You Currently: pre-incubation We have the

    form, we have contributors (5-6) (We need more conributors!) We keep our code: Here: server And here: client Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  88. Marconi & Openstack & You Currently: pre-incubation We have the

    form, we have contributors (5-6) (We need more conributors!) We keep our code: Here: server And here: client Join us on IRC: #openstack-marconi @ freenode Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  89. The Future Get incubated into Openstack Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message

    Queues as a Service: Introducing Marconi
  90. The Future Get incubated into Openstack Release the reference client

    Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  91. The Future Get incubated into Openstack Release the reference client

    Implement more: Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  92. The Future Get incubated into Openstack Release the reference client

    Implement more: Transport drivers Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  93. The Future Get incubated into Openstack Release the reference client

    Implement more: Transport drivers Storage drivers Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  94. The Future Get incubated into Openstack Release the reference client

    Implement more: Transport drivers Storage drivers Grow! Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing Marconi
  95. Questions? Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing

    Marconi
  96. Thanks! Alejandro Cabrera (alejandro.cabrera@rackspace.com) Message Queues as a Service: Introducing

    Marconi