The document discusses distributed messaging using AMQP and RabbitMQ. It provides an overview of AMQP, including the service model with exchanges, queues, bindings and publishers/consumers. Different exchange types like direct, topic and headers are demonstrated. The AMQP protocol layers and wire protocol are also summarized.
This document provides an overview of the Advanced Message Queuing Protocol (AMQP) for message brokering. It describes the key components of the AMQP model including exchanges, queues, bindings and publishers/consumers. Different exchange types - direct, fanout, topic and headers - are explained with examples. The benefits of AMQP for stable, mature, widely supported message passing are noted. The document also describes how the topic exchange can provide flexibility to route messages in multiple ways based on filtering criteria. In the end, it provides an example of how AMQP with a message broker like RabbitMQ could be used to implement a more robust event logging architecture.
This document discusses messaging with AMQP and RabbitMQ. It provides an overview of why messaging is useful for decoupling systems and making them asynchronous and reliable. It then discusses why AMQP and RabbitMQ are good choices for messaging and covers some basic AMQP concepts like exchanges, queues, bindings and routing. It also discusses how Spring supports AMQP and RabbitMQ through its AMQP libraries and templates. Finally, it briefly covers how web messaging can be done through STOMP over websockets.
Messaging Standards and Systems - AMQP & RabbitMQAll Things Open
All Things Open 2014 - Day 1
Wednesday, October 22nd, 2014
Gavin Roy
VP of Architecture for AWeber Communications
Back Dev
Messaging Standards and Systems - AMQP & RabbitMQ
Find more by Gavin here: https://speakerdeck.com/gmr
AMQP (Advanced Message Queuing Protocol) is an open standard protocol for message queuing that aims to provide interoperability between platforms and vendors. It defines a wire-level protocol for message passing that can be implemented by different technologies, unlike proprietary middleware which is locked to specific platforms. AMQP includes concepts like exchanges, bindings, queues, and different exchange types (fanout, direct, topic) to route messages from publishers to subscribers in a decoupled manner. Several open source and commercial brokers like RabbitMQ and Qpid implement the AMQP standard.
This document introduces AMQP messaging using RabbitMQ as a broker. It explains that AMQP and RabbitMQ allow applications to communicate asynchronously by sending and receiving messages through a broker, providing decoupling, queueing, load balancing and scalability. It provides details on RabbitMQ as an open source AMQP broker developed by Rabbit Technologies and the AMQP Working Group which maintains the AMQP standard.
This document discusses AMQP and RabbitMQ for messaging. AMQP is a networking protocol that enables client applications to communicate with messaging middleware brokers. Brokers receive messages from publishers and route them to consumers. RabbitMQ is an open source message broker that implements AMQP. It discusses using RabbitMQ with various languages like Ruby via libraries like Bunny. It provides examples of broker types, exchanges and queues.
Easy enterprise application integration with RabbitMQ and AMQPRabbit MQ
VMware vFabric RabbitMQ Technical Webinar December 2010 by VMware engineer Emile Joubert. Covers common integration patterns, and how RabbitMQ makes these easily implemented, using AMQP as a communications mechanism.
You can view a recording of this presentation on YouTube: http://www.youtube.com/user/SpringSourceDev#p/c/5956C6D9EC319817/0/ABGMjX4K0D8
The Future of Messaging: RabbitMQ and AMQP Eberhard Wolff
RabbitMQ and AMQP provide a standardized messaging protocol that improves scalability and reliability over traditional RPC approaches. The document discusses the benefits of messaging including decoupling and asynchronous communication. It provides an overview of core AMQP concepts like exchanges, queues, bindings and routing. Spring AMQP and Spring's RabbitTemplate simplify working with RabbitMQ in Java by providing a common API and configuration support.
This document provides an overview of the Advanced Message Queuing Protocol (AMQP) for message brokering. It describes the key components of the AMQP model including exchanges, queues, bindings and publishers/consumers. Different exchange types - direct, fanout, topic and headers - are explained with examples. The benefits of AMQP for stable, mature, widely supported message passing are noted. The document also describes how the topic exchange can provide flexibility to route messages in multiple ways based on filtering criteria. In the end, it provides an example of how AMQP with a message broker like RabbitMQ could be used to implement a more robust event logging architecture.
This document discusses messaging with AMQP and RabbitMQ. It provides an overview of why messaging is useful for decoupling systems and making them asynchronous and reliable. It then discusses why AMQP and RabbitMQ are good choices for messaging and covers some basic AMQP concepts like exchanges, queues, bindings and routing. It also discusses how Spring supports AMQP and RabbitMQ through its AMQP libraries and templates. Finally, it briefly covers how web messaging can be done through STOMP over websockets.
Messaging Standards and Systems - AMQP & RabbitMQAll Things Open
All Things Open 2014 - Day 1
Wednesday, October 22nd, 2014
Gavin Roy
VP of Architecture for AWeber Communications
Back Dev
Messaging Standards and Systems - AMQP & RabbitMQ
Find more by Gavin here: https://speakerdeck.com/gmr
AMQP (Advanced Message Queuing Protocol) is an open standard protocol for message queuing that aims to provide interoperability between platforms and vendors. It defines a wire-level protocol for message passing that can be implemented by different technologies, unlike proprietary middleware which is locked to specific platforms. AMQP includes concepts like exchanges, bindings, queues, and different exchange types (fanout, direct, topic) to route messages from publishers to subscribers in a decoupled manner. Several open source and commercial brokers like RabbitMQ and Qpid implement the AMQP standard.
This document introduces AMQP messaging using RabbitMQ as a broker. It explains that AMQP and RabbitMQ allow applications to communicate asynchronously by sending and receiving messages through a broker, providing decoupling, queueing, load balancing and scalability. It provides details on RabbitMQ as an open source AMQP broker developed by Rabbit Technologies and the AMQP Working Group which maintains the AMQP standard.
This document discusses AMQP and RabbitMQ for messaging. AMQP is a networking protocol that enables client applications to communicate with messaging middleware brokers. Brokers receive messages from publishers and route them to consumers. RabbitMQ is an open source message broker that implements AMQP. It discusses using RabbitMQ with various languages like Ruby via libraries like Bunny. It provides examples of broker types, exchanges and queues.
Easy enterprise application integration with RabbitMQ and AMQPRabbit MQ
VMware vFabric RabbitMQ Technical Webinar December 2010 by VMware engineer Emile Joubert. Covers common integration patterns, and how RabbitMQ makes these easily implemented, using AMQP as a communications mechanism.
You can view a recording of this presentation on YouTube: http://www.youtube.com/user/SpringSourceDev#p/c/5956C6D9EC319817/0/ABGMjX4K0D8
The Future of Messaging: RabbitMQ and AMQP Eberhard Wolff
RabbitMQ and AMQP provide a standardized messaging protocol that improves scalability and reliability over traditional RPC approaches. The document discusses the benefits of messaging including decoupling and asynchronous communication. It provides an overview of core AMQP concepts like exchanges, queues, bindings and routing. Spring AMQP and Spring's RabbitTemplate simplify working with RabbitMQ in Java by providing a common API and configuration support.
RabbitMQ is an open source message-broker software that originally implemented the Advanced Message Queuing Protocol (AMQP).it accepts and forwards messages.
RabbitMQ is an open source message broker that implements the AMQP protocol. It provides various messaging patterns using different exchange types and supports clustering for scalability and high availability. Administration of RabbitMQ includes managing queues, exchanges, bindings and other components. Integrations exist for protocols like STOMP, MQTT and frameworks like Spring, while security features include authentication, authorization, and SSL/TLS encryption.
An update from the RabbitMQ team - Michael KlishinRabbitMQ Summit
Michael Klishin from Pivotal gave an update on RabbitMQ. He discussed the state of the 3.7.x releases which focused on deployment automation, operator friendliness, and stability. Future plans include improved scalability, reliability, and simplifying upgrades. Key projects include implementing quorum queues using Raft for improved mirroring, adding OAuth 2.0 support, developing a new schema storage system, and allowing mixed version clusters. The 3.8 release will include quorum queues, OAuth 2.0, and initial mixed version cluster support.
Following up from AMQP presentation, this is a more in-depth coverage of RabbitMQ with workshop-style walkthrough, covering various aspects of the system.
This document summarizes using AMQP and RabbitMQ for messaging with Spring and Camel. It provides an overview of messaging and why it is used, describes the AMQP protocol and RabbitMQ broker, explains the different AMQP concepts like queues, exchanges and bindings, and how to integrate RabbitMQ with Spring and Camel using common patterns. Useful links are also included for tutorials on RabbitMQ, Camel RabbitMQ component, example code, and Spring AMQP.
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffJAX London
2011-11-02 | 05:45 PM - 06:35 PM
The JMS standard is 9 years old - but outside the Java community innovation is happening. The AMQP standard with implementations like RabbitMQ is gaining more and more traction. This session explains the standard and its advantages. It will also show how an AMQP application can be implemented using Java.
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)James Titcumb
RabbitMQ is a message broker - an application that allows communication between applications by way of a message queuing system. In this talk, we’ll set up an RabbitMQ instance, take an intermediate-level look into the technical features it provides and also how you can apply RabbitMQ in your in applications to scale them efficiently.
This document provides an overview of Spring RabbitMQ, which is a framework for integrating Java applications with the RabbitMQ message broker. It discusses messaging basics and RabbitMQ concepts like exchanges, queues, bindings and message routing. It then summarizes how Spring RabbitMQ can be used to configure RabbitMQ infrastructure like connections, templates, listeners and administrators either directly in Java code or using Spring configuration. It also briefly mentions how Spring Integration and Spring Boot can be used to build messaging applications on RabbitMQ.
Introduction to RabbitMQ, Amqp and some messaging patterns.
Easy to follow code examples step by step provided.
Sample code and escenarios can be found at: https://gist.github.com/javierarilos/9348168
Messaging in the Cloud - AMQP, RabbitMQ and SpringEberhard Wolff
This document discusses messaging in the cloud using AMQP, RabbitMQ, and Spring. It provides an overview of why AMQP is useful for interoperability and efficiency. Key aspects of AMQP include exchanges, queues, bindings, and routing keys. The document also explains how Spring enables configuration of RabbitMQ resources like connections, exchanges, and queues through dependency injection. Spring templates provide a common interface for sending and receiving messages while managing resources.
A presentation from internal meeting on Message Broker System and RabbitMQ. RabbitMQ is open source message broker software that implements the Advanced Message Queuing Protocol (AMQP).
Let's learn about :
What is RabbitMQ ?
Why RabbitMQ ?
RabbitMQ vs Kafka ? Which one is suitable for your purpose.
Advantages of RabbitMQ
Support By RabbitMQ
RabbitMQ is one part of Message Broker that implemented Advance Message Queue Protocol (AMQP), that help your application to communicate each other, when you extends your application scale.
Talk I gave at LRUG about RabbitMQ, how we're using it at GoCardless and the some tools we built - Hutch and AMQPC
Hutch is an opinionated library for RabbitMQ which makes using it for comms in SOA super simple
XMPP and AMQP are messaging protocols. XMPP uses XML and is extendable while AMQP is for message queues. Ejabberd is an XMPP server written in Erlang, while RabbitMQ supports AMQP. Both can be used for communication between clients and servers.
Internet companies with huge traffic and millions of users have tasks involved that cannot be served in a request. RabbitMQ can process tasks or communication between different app components asynchronously but close to real time.
Messaging can be used to integrate different systems and applications to work together by transferring data packets asynchronously using customizable formats. It allows for decoupling of publishers and subscribers. RabbitMQ is an open source message broker that implements the AMQP standard for high performance messaging. It can be used from Java applications using the RabbitMQ client library, Apache Camel AMQP component, or Spring AMQP framework.
Rabbit MQ is a message broker software that implements the Advanced Message Queuing Protocol (AMQP) standard. It allows for push-style communication where the server initiates transactions by sending messages to clients. Rabbit MQ supports publish/subscribe and queuing of messages across platforms. It provides reliability, security, and scalability for message delivery. Common uses of Rabbit MQ include notifications, messaging, and communication between services.
What we've learned from running thousands of production RabbitMQ clusters - L...RabbitMQ Summit
This document discusses best practices for optimizing RabbitMQ performance and stability based on experience running thousands of RabbitMQ clusters. Key recommendations include using short-lived, separate connections for publishers and consumers; limiting queue sizes; enabling lazy queues for predictable performance; splitting queues across cores; keeping connections and channels open; adjusting prefetch values; using a stable RabbitMQ version; disabling unused plugins; and deleting unused queues. Diagnostic tools are also recommended to check for issues like connection leaks, large queues, and improper exchange usage.
AMQP 1.0 is a standard messaging protocol that allows for secure, reliable message transfer between applications. It uses a layered model with a transport/connection security layer, frame transfer protocol, and message transfer protocol. Messages are transferred between nodes organized in a container/node topology. The core protocol elements include connections, sessions to multiplex communication over connections, and links to transfer messages between nodes. Flow control manages message throughput at both the session and link level. Data is encoded on the wire using AMQP's type system which defines primitive types like strings, numbers, and composite types.
The document discusses messaging patterns and how messaging can be used to implement a photo gallery application. It begins with an example photo gallery implementation that shows how new requirements can make the code complex. The document then introduces messaging as a way to decouple components and make the code more scalable and flexible. It provides examples of how common messaging patterns like publish/subscribe, request/response, and competing consumers can be implemented using RabbitMQ.
RabbitMQ is an open source message-broker software that originally implemented the Advanced Message Queuing Protocol (AMQP).it accepts and forwards messages.
RabbitMQ is an open source message broker that implements the AMQP protocol. It provides various messaging patterns using different exchange types and supports clustering for scalability and high availability. Administration of RabbitMQ includes managing queues, exchanges, bindings and other components. Integrations exist for protocols like STOMP, MQTT and frameworks like Spring, while security features include authentication, authorization, and SSL/TLS encryption.
An update from the RabbitMQ team - Michael KlishinRabbitMQ Summit
Michael Klishin from Pivotal gave an update on RabbitMQ. He discussed the state of the 3.7.x releases which focused on deployment automation, operator friendliness, and stability. Future plans include improved scalability, reliability, and simplifying upgrades. Key projects include implementing quorum queues using Raft for improved mirroring, adding OAuth 2.0 support, developing a new schema storage system, and allowing mixed version clusters. The 3.8 release will include quorum queues, OAuth 2.0, and initial mixed version cluster support.
Following up from AMQP presentation, this is a more in-depth coverage of RabbitMQ with workshop-style walkthrough, covering various aspects of the system.
This document summarizes using AMQP and RabbitMQ for messaging with Spring and Camel. It provides an overview of messaging and why it is used, describes the AMQP protocol and RabbitMQ broker, explains the different AMQP concepts like queues, exchanges and bindings, and how to integrate RabbitMQ with Spring and Camel using common patterns. Useful links are also included for tutorials on RabbitMQ, Camel RabbitMQ component, example code, and Spring AMQP.
Architecture | The Future of Messaging: RabbitMQ and AMQP | Eberhard WolffJAX London
2011-11-02 | 05:45 PM - 06:35 PM
The JMS standard is 9 years old - but outside the Java community innovation is happening. The AMQP standard with implementations like RabbitMQ is gaining more and more traction. This session explains the standard and its advantages. It will also show how an AMQP application can be implemented using Java.
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)James Titcumb
RabbitMQ is a message broker - an application that allows communication between applications by way of a message queuing system. In this talk, we’ll set up an RabbitMQ instance, take an intermediate-level look into the technical features it provides and also how you can apply RabbitMQ in your in applications to scale them efficiently.
This document provides an overview of Spring RabbitMQ, which is a framework for integrating Java applications with the RabbitMQ message broker. It discusses messaging basics and RabbitMQ concepts like exchanges, queues, bindings and message routing. It then summarizes how Spring RabbitMQ can be used to configure RabbitMQ infrastructure like connections, templates, listeners and administrators either directly in Java code or using Spring configuration. It also briefly mentions how Spring Integration and Spring Boot can be used to build messaging applications on RabbitMQ.
Introduction to RabbitMQ, Amqp and some messaging patterns.
Easy to follow code examples step by step provided.
Sample code and escenarios can be found at: https://gist.github.com/javierarilos/9348168
Messaging in the Cloud - AMQP, RabbitMQ and SpringEberhard Wolff
This document discusses messaging in the cloud using AMQP, RabbitMQ, and Spring. It provides an overview of why AMQP is useful for interoperability and efficiency. Key aspects of AMQP include exchanges, queues, bindings, and routing keys. The document also explains how Spring enables configuration of RabbitMQ resources like connections, exchanges, and queues through dependency injection. Spring templates provide a common interface for sending and receiving messages while managing resources.
A presentation from internal meeting on Message Broker System and RabbitMQ. RabbitMQ is open source message broker software that implements the Advanced Message Queuing Protocol (AMQP).
Let's learn about :
What is RabbitMQ ?
Why RabbitMQ ?
RabbitMQ vs Kafka ? Which one is suitable for your purpose.
Advantages of RabbitMQ
Support By RabbitMQ
RabbitMQ is one part of Message Broker that implemented Advance Message Queue Protocol (AMQP), that help your application to communicate each other, when you extends your application scale.
Talk I gave at LRUG about RabbitMQ, how we're using it at GoCardless and the some tools we built - Hutch and AMQPC
Hutch is an opinionated library for RabbitMQ which makes using it for comms in SOA super simple
XMPP and AMQP are messaging protocols. XMPP uses XML and is extendable while AMQP is for message queues. Ejabberd is an XMPP server written in Erlang, while RabbitMQ supports AMQP. Both can be used for communication between clients and servers.
Internet companies with huge traffic and millions of users have tasks involved that cannot be served in a request. RabbitMQ can process tasks or communication between different app components asynchronously but close to real time.
Messaging can be used to integrate different systems and applications to work together by transferring data packets asynchronously using customizable formats. It allows for decoupling of publishers and subscribers. RabbitMQ is an open source message broker that implements the AMQP standard for high performance messaging. It can be used from Java applications using the RabbitMQ client library, Apache Camel AMQP component, or Spring AMQP framework.
Rabbit MQ is a message broker software that implements the Advanced Message Queuing Protocol (AMQP) standard. It allows for push-style communication where the server initiates transactions by sending messages to clients. Rabbit MQ supports publish/subscribe and queuing of messages across platforms. It provides reliability, security, and scalability for message delivery. Common uses of Rabbit MQ include notifications, messaging, and communication between services.
What we've learned from running thousands of production RabbitMQ clusters - L...RabbitMQ Summit
This document discusses best practices for optimizing RabbitMQ performance and stability based on experience running thousands of RabbitMQ clusters. Key recommendations include using short-lived, separate connections for publishers and consumers; limiting queue sizes; enabling lazy queues for predictable performance; splitting queues across cores; keeping connections and channels open; adjusting prefetch values; using a stable RabbitMQ version; disabling unused plugins; and deleting unused queues. Diagnostic tools are also recommended to check for issues like connection leaks, large queues, and improper exchange usage.
AMQP 1.0 is a standard messaging protocol that allows for secure, reliable message transfer between applications. It uses a layered model with a transport/connection security layer, frame transfer protocol, and message transfer protocol. Messages are transferred between nodes organized in a container/node topology. The core protocol elements include connections, sessions to multiplex communication over connections, and links to transfer messages between nodes. Flow control manages message throughput at both the session and link level. Data is encoded on the wire using AMQP's type system which defines primitive types like strings, numbers, and composite types.
The document discusses messaging patterns and how messaging can be used to implement a photo gallery application. It begins with an example photo gallery implementation that shows how new requirements can make the code complex. The document then introduces messaging as a way to decouple components and make the code more scalable and flexible. It provides examples of how common messaging patterns like publish/subscribe, request/response, and competing consumers can be implemented using RabbitMQ.
Cloud architectural patterns and Microsoft Azure toolsPushkar Chivate
This document discusses various cloud architectural patterns and Microsoft Azure services. It provides an overview of data management, resiliency, and messaging patterns. It then demonstrates the Materialized View pattern and how it can improve query performance. Finally, it shows examples of Azure Tables, DocumentDB, and Azure Service Bus queues for messaging between loosely coupled applications.
Interoperability demonstration between 6 different products that implement the OMG DDS Interoperability Wire Protocol (DDS-RTPS).
The demonstration took place at the March 2012 OMG technical meeting in Washington DC.
The following companies demonstrated interoperability between their products: RTI (Connext DDS). TwinOaks Computing (CoreDX), PrismTech (OpenSpliceDDS), OCI (OpenDDS), ETRI (ETRI DDS), IBM.
OWASP Ireland June Chapter Meeting - Paul Mooney on ARMOR & CSRFPaul Mooney
Slides from Paul Mooney's talk at the OWASP Ireland June Chapter meeting offering an overview of the Encrypted Token Pattern, and ARMOR, its .NET implementation.
The document introduces RabbitMQ, an open source message broker that implements the Advanced Message Queuing Protocol (AMQP). It discusses why AMQP is an open industry standard that is not language dependent and supported by many major companies. It then provides an overview of messaging concepts like queues, exchanges, routing and pub/sub using RabbitMQ examples. It also mentions some advanced features of AMQP like authentication, load balancing and persistent/non-persistent messages. Finally, it provides information on how to get started with RabbitMQ.
Architecture of message oriented middlewareLikan Patra
Message-oriented middleware (MOM) facilitates asynchronous messaging between components. Common MOM implementations include Java Message Service (JMS), Microsoft Message Queuing (MSMQ), and IBM MQSeries. JMS supports publish-subscribe and point-to-point messaging models. MSMQ stores messages in queues managed by queue managers, while MQSeries uses objects like queue managers and queues that must be set up after installation. MOM plays an important role in enabling communication between distributed software systems.
Overview of message oriented middleware technology (MOM).
Message Oriented Middleware allows asynchronous operation between sender and receiver of information. This greatly reduces temporal coupling and allows building flexible and extensible application architectures. Message queues managed by message brokers are used as information exchanges between sender and receiver. The subscribe-publish pattern allows producers and consumers to share information through message brokers without any direct coupling between them. Various message oriented protocols like MSMQ, AMQP, XMPP and MQTT have emerged that serve the diverse needs of different environments.
This document discusses web performance optimization. It begins by defining web performance optimization (WPO) as analyzing end-to-end performance rather than just server-side performance. It emphasizes the importance of performance, citing research showing drops in user behavior metrics like searches and revenue with even small increases in page load times. The document then covers various aspects of web performance like network optimization, browser parsing, and JavaScript performance. It provides checklists of techniques to optimize the client-side experience through approaches like async script loading and using CSS transitions.
This document discusses using a service mesh like Istio to manage microservices. It describes how Istio uses the Envoy proxy deployed as a sidecar to each microservice pod to provide capabilities like discovery, load balancing, resiliency, metrics and tracing across the network of microservices. These capabilities help govern microservice behavior at runtime, enforce policies, and improve observability of traffic between microservices. The document also outlines some use cases for a service mesh like traffic shaping, fault injection for testing resilience, and improved security and visibility across the distributed application.
Exploring the Possibilities of Sencha and WebRTCGrgur Grisogono
This document discusses WebRTC and how it can be used with Sencha and Ext JS. It provides an overview of WebRTC, including what it is, its key features such as media streams and peer connections, and how it enables real-time communication directly in the browser. It also covers related concepts like NAT traversal using STUN, TURN, and ICE and provides code examples for setting up a basic WebRTC video call between two peers.
How do async ap is survive in a rest world Red Hat
The document discusses how asynchronous APIs can survive in a REST-based world. It describes how Async APIs use an event-driven approach compared to the request-reply model of REST. The AsyncAPI specification aims to describe event-driven APIs similarly to how OpenAPI describes REST APIs. The document demonstrates how Async and REST APIs can work together using an example setup with an API gateway, manager, and message broker to connect an HTML page and Node.js client via published topics.
Decompose That WAR! Architecting for Adaptability, Scalability, and Deployabi...Chris Richardson
This document summarizes a presentation about decomposing monolithic applications into microservices. The presentation discusses how monolithic architectures can be difficult to deploy, scale, and update. It then introduces strategies for decomposing a monolith into independent services, such as extracting new functionality or splitting the frontend from the backend. The presentation also covers best practices for service communication, including using an API gateway and futures to handle asynchronous requests. Overall, the document advocates for a modular, polyglot architecture using independent, interoperable services to improve deployability, scalability, and adaptability compared to a monolithic application.
A rough and researchy presentation where I tried out some new material in front of a local audience. Skipped the usual introduction and talked about some of the problems people run into when they do microservices and miss a few things. More refined version of this talk to be shown at O'Reilly Software Architecture Conference in New York in April.
apidays Paris 2019 - How Do Async APIs Survive in a Rest World? by Luca Ferra...apidays
The document discusses asynchronous (async) APIs and how they can work alongside REST APIs. It defines what async APIs are, including how they differ from REST in using an asynchronous event-driven model rather than synchronous request-reply. Async APIs are useful for real-time data pipelines, IoT, and streaming applications. The AsyncAPI specification was created to describe event-driven microservices in a similar way to how OpenAPI describes REST APIs. The document demonstrates how async and REST APIs can be used together through an example setup using an API gateway, manager, and Kafka to expose a real-time data stream via an async API.
The document discusses how to build powerful web applications on AWS. It provides 6 rules for building scalable applications: 1) service all web requests, 2) service requests as fast as possible, 3) handle requests at any scale, 4) simplify architecture with services, 5) automate operational management, and 6) leverage unique cloud properties. Specific AWS services are mapped to each rule, such as Route53, ELB, DynamoDB, and CloudFormation. The document argues that AWS services allow developers to focus on their applications rather than infrastructure management.
AWS Pop-up Loft Berlin: Cache is King - Running Lean Architectures: Optimizin...AWS Germany
Whether you’re a cash-strapped startup or an enterprise optimizing spend, it pays to run cost-efficient architectures on AWS. This session reviews a wide range of cost planning, monitoring, and optimization strategies, featuring real-world experience from AWS customers. We’ll cover how you can effectively combine EC2 On-Demand, Reserved, and Spot instances to handle different use cases, leveraging auto scaling to match capacity to workload, choosing the most optimal instance type through load testing, taking advantage of multi-AZ support, and using CloudWatch to monitor usage and automatically shut off resources when not in use. We'll discuss taking advantage of tiered storage and caching, offloading content to Amazon CloudFront to reduce back-end load, and getting rid of your back end entirely, by leveraging AWS high-level services. We will also showcase simple tools to help track and manage costs, including the AWS Cost Explorer, Billing Alerts, and Trusted Advisor. This session will be your pocket guide for running cost effectively in the Amazon cloud.
Watch the re:Invent recording here: https://www.youtube.com/watch?v=SG1DsYgeGEk
re:Invent ARC307 - Serverless architectural patterns and best practices.pdfHeitor Lessa
As serverless architectures become more popular, customers need a framework of patterns to help them to identify how to leverage AWS to deploy their workloads without managing servers or operating systems. In this session, we describe reusable serverless patterns while considering costs. For each pattern, we provide operational, security, and reliability best practices and discuss potential challenges. We also demonstrate the implementation of some of the patterns in a reference solution. This session can help you recognize services and applications for serverless architectures in your own organization and understand areas of potential savings and increased agility and reliability.
This document discusses how AWS services can help startups and developers achieve profitability. It provides an example of a company that was able to reduce costs and improve margins by 54% through optimizing its architecture on AWS. Key strategies discussed include leveraging reserved instances, spot pricing, cost-aware architecting techniques like caching with S3 and CloudFront, database optimizations, and rapid prototyping tools to reduce test/dev costs. The document emphasizes starting with understanding usage patterns, doing an apples-to-apples comparison of total costs, and continuously optimizing resources through pricing models and architectural improvements.
Architecting &Building Scalable Secure Web APISHAKIL AKHTAR
Shakil Akhtar's presentation discusses architecting scalable and secure web APIs. The presentation covers API methodologies like REST, considerations for API design such as security and scalability, and best practices. The document provides an overview of APIs and outlines topics like authentication mechanisms, caching for performance, and transaction handling.
Running Lean and Mean: Designing Cost-efficient Architectures on AWS (ARC313)...Amazon Web Services
Whether you're a startup getting to profitability or an enterprise optimizing spend, it pays to run cost-efficient architectures on AWS. Dive deep into techniques used by successful customers to reduce waste and fine-tune their AWS spending, often with improved performance and a better end-customer experience. Some techniques covered in this session: Learn how to make the most of Auto Scaling, develop an effective Spot Instance strategy, and optimize for your daily traffic cycles. Learn techniques to tier storage, offload your static content to Amazon S3 and Amazon CloudFront, reduce your database loads with edge caching, spawn part-time databases, pool resources across accounts, and even teach your dev/test instances to sleep. Showcasing easily-applicable methods, this session could be your best invested hour all day.
Running Lean and Mean: Designing Cost-efficient Architectures on AWS (ARC313)...Amazon Web Services
Whether you're a startup getting to profitability or an enterprise optimizing spend, it pays to run cost-efficient architectures on AWS. Dive deep into techniques used by successful customers to reduce waste and fine-tune their AWS spending, often with improved performance and a better end-customer experience. Some techniques covered in this session: Learn how to make the most of Auto Scaling, develop an effective Spot Instance strategy, and optimize for your daily traffic cycles. Learn techniques to tier storage, offload your static content to Amazon S3 and Amazon CloudFront, reduce your database loads with edge caching, spawn part-time databases, pool resources across accounts, and even teach your dev/test instances to sleep. Showcasing easily-applicable methods, this session could be your best invested hour all day.
The document is an agenda for the AWS Summit 2013 taking place on Tuesday, May 7th. It outlines the schedule of events including keynote speeches from Adam Selipsky (VP of AWS), customer case studies, and breakout sessions on various AWS services and best practices. The day will include opportunities for networking during morning tea, lunch, and a cocktail function in the evening.
IBM WebSphere MQ allows for messaging between different platforms and applications. It uses queues to hold messages in sequence and queue managers to control the queues. MQ clients act as brokers between applications and the MQ server, simplifying development and reducing hardware requirements. The MQ API provides programming interfaces for various languages. MQ also supports Java, JMS, and .NET. Distributed queuing uses explicit connections between queue managers, while clustered queue managers allow for shared queue knowledge and automatic message routing across nodes.
The document outlines topics covered on day 1 of a web technologies training, including client-server models, HTTP, HTML, dynamic web content using CGI and Java servlets, web applications, database persistence, and an exercise. Key topics were client-server architecture, HTTP request-response protocols, HTML for structuring hypertext documents, and server-side technologies like CGI and Java for dynamically generating web content.
Scale Your Studio: Rendering with Spot and Deadline on AWS (CMP202) - AWS re:...Amazon Web Services
What if you could scale your rendering pipeline to near-limitless capacity- what would that mean for your studio? Learn how Amazon EC2 Spot and AWS Thinkbox Deadline can help scale your VFX and CG rendering pipeline, creating faster feedback cycles and most artist time focused on creating content, and how you can optimize your compute costs along the way. This session focuses on rendering workloads combining Deadline (an AWS rendering pipeline management tool) and Spot for scalable cost-effective computing. Find out how real customers working on Hollywood productions are integrating their pipelines with AWS to realize the elasticity and scale provided by Amazon EC2, as well as how they intend to leverage AWS in the future to scale their superpowers.
This document provides an overview of the key concepts and typical workflow of the distributed version control system Git. It discusses the goals of Git and how it differs from SVN in using a local repository and being faster and safer. The typical Git workflow of status checking, staging changes, and committing is described. The document also covers logging commits, branching and merging, undoing changes, and common Git commands.
Deployment Automation - My journey at PeazieWee Keat Chin
In this slide, I share the story of my journey of development and deployment automation at Peazie.
It covers how automation may not always be sufficient when striving to achieve consistent, good quality delivery.
This document provides an overview of AWS CloudFormation, including its key components like templates, parameters, resources, and outputs. It also discusses how CloudFormation can be used to automate infrastructure deployment and management through templates, helping to ensure environments are consistently configured and deployments are reproducible. A demo of CloudFormation is promised to illustrate its capabilities.
This document provides an introduction to Arduino and physical computing. It explains that Arduino is an open source prototyping platform that simplifies physical computing. The document walks through some hands-on examples of blinking an LED, fading an LED using pulse-width modulation, adding input using pushbuttons and sensors, and combining input and output. It encourages experimenting further on your own.
The document proposes a new continuous delivery workflow using Git for version control, Jenkins for builds, AWS services like S3 and CloudFormation, and scripts to integrate tools. It notes current problems like unclear test and deployment processes, configuration issues, and ad-hoc deployments. The workflow would separate custom app code into a new repository, consolidate configurations, and establish disciplined environment setups and deployments.
The document provides an introduction to Agile development methodology and Scrum framework. It describes key principles of the Agile Manifesto like prioritizing individual/team interactions, working software, customer collaboration over processes/tools. It then explains the Scrum framework, including roles like Scrum Master and Product Owner, and processes like sprint planning, daily stand-ups, reviews and retrospectives. It also discusses integrating tools like Jira and Kanban boards to track work in progress.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
Infrastructure Challenges in Scaling RAG with Custom AI modelsZilliz
Building Retrieval-Augmented Generation (RAG) systems with open-source and custom AI models is a complex task. This talk explores the challenges in productionizing RAG systems, including retrieval performance, response synthesis, and evaluation. We’ll discuss how to leverage open-source models like text embeddings, language models, and custom fine-tuned models to enhance RAG performance. Additionally, we’ll cover how BentoML can help orchestrate and scale these AI components efficiently, ensuring seamless deployment and management of RAG systems in the cloud.
8. Possible Solutions
• Server tweaks:TCP conns, ulimit, etc
• Multi-master model
• Localised queue
• ... and quite a few more
Tuesday, 10 September 13
9. Possible Solutions
• Server tweaks:TCP conns, ulimit, etc
• Multi-master model
•Localised queue
• ... and quite a few more
Tuesday, 10 September 13
10. Localised Queues
• Fast (no TCP latency)
• Network partition tolerant
• Modular & scalable
• Reliable & Durable
Tuesday, 10 September 13
37. QueuesExchange Binding
AMQP Service Model
‣ routes messages based on
criteria
‣ doesn’t store messages
‣ can inspect message
content
‣ can be created at runtime
consumers
Tuesday, 10 September 13
38. QueuesExchange Binding
AMQP Service Model
‣ store messages
‣ named
‣ bound-able to exchange
‣ criteria
‣ can be created at
runtime by consumers
‣ routes messages based on
criteria
‣ doesn’t store messages
‣ can inspect message
content
‣ can be created at runtime
consumers
Tuesday, 10 September 13
39. QueuesExchange Binding
AMQP Service Model
‣ creates a relationship between
queues and exchanges
‣ contains criteria and properties
‣ can be created at runtime by
consumers
‣ store messages
‣ named
‣ bound-able to exchange
‣ criteria
‣ can be created at
runtime by consumers
‣ routes messages based on
criteria
‣ doesn’t store messages
‣ can inspect message
content
‣ can be created at runtime
consumers
Tuesday, 10 September 13
40. QueuesExchange Binding
AMQP Service Model
‣ creates a relationship between
queues and exchanges
‣ contains criteria and properties
‣ can be created at runtime by
consumers
‣ store messages
‣ named
‣ bound-able to exchange
‣ criteria
‣ can be created at
runtime by consumers
‣ routes messages based on
criteria
‣ doesn’t store messages
‣ can inspect message
content
‣ can be created at runtime
consumers
Tuesday, 10 September 13
41. QueuesExchange Binding
AMQP Service Model
Publisher Consumer
‣ creates a relationship between
queues and exchanges
‣ contains criteria and properties
‣ can be created at runtime by
consumers
‣ store messages
‣ named
‣ bound-able to exchange
‣ criteria
‣ can be created at
runtime by consumers
‣ routes messages based on
criteria
‣ doesn’t store messages
‣ can inspect message
content
‣ can be created at runtime
consumers
Tuesday, 10 September 13
42. QueuesExchange Binding
AMQP Service Model
Publisher Consumer
‣ creates a relationship between
queues and exchanges
‣ contains criteria and properties
‣ can be created at runtime by
consumers
‣ store messages
‣ named
‣ bound-able to exchange
‣ criteria
‣ can be created at
runtime by consumers
‣ routes messages based on
criteria
‣ doesn’t store messages
‣ can inspect message
content
‣ can be created at runtime
consumers
‣ can create
exchanges and
queues
‣ can create
exchanges and
queues
Tuesday, 10 September 13
52. Exchange
‘events’
Binding
AMQP Service Model
➡Queue:
‣ user_click_queue
➡Exchange:
‣ events
Direct Type
Message
Message
Message
event.user.click
event.user.view
event.user.share
user_click_queue
Tuesday, 10 September 13
53. Exchange
‘events’
Binding
AMQP Service Model
➡Queue:
‣ user_click_queue
➡Exchange:
‣ events
➡Routing Key:
‣ event.user.click
Direct Type
Message
Message
Message
event.user.click
event.user.view
event.user.share
user_click_queue
Tuesday, 10 September 13
54. Exchange
‘events’
Binding
AMQP Service Model
➡Queue:
‣ user_click_queue
➡Exchange:
‣ events
➡Routing Key:
‣ event.user.click
Direct Type
Message
Message
Message
event.user.click
event.user.view
event.user.share
PHP Script
PHP Script
PHP Script
user_click_queue
Tuesday, 10 September 13
55. Exchange
‘events’
AMQP Service Model
Direct Type
Message
Message
Message
event.user.click
event.user.view
event.user.share
PHP Script
PHP Script
PHP Script
user_click_queue
ConsumerPublisher/
Producer
Tuesday, 10 September 13
56. Exchange
‘events’
AMQP Service Model
Direct Type
Message
Message
Message
event.user.click
event.user.view
event.user.share
user_click_queue
user_view_queue
user_share_queue
Tuesday, 10 September 13
57. Exchange
‘events’
AMQP Service Model
Direct Type
Message
Message
Message
event.user.click
event.user.view
event.user.share
user_click_queue
user_view_queue
user_share_queue
Message
Message
Message
Tuesday, 10 September 13
58. Exchange
‘events’
AMQP Service Model
What if...
Message
Message
Message
event.user.click
event.user.view
event.user.share
user_interaction_queue
user_shares_queue
Tuesday, 10 September 13
59. Exchange
‘events’
AMQP Service Model
What if...
user_interaction_queue
user_shares_queue
Message
Message
Message
event.user.click
event.user.view
event.user.share
Tuesday, 10 September 13
60. Exchange
‘events’
AMQP Service Model
What if...
Message
Message
Message
event.user.click
event.user.view
event.user.share
user_interaction_queue
user_shares_queue
Tuesday, 10 September 13
61. Exchange
‘events’
AMQP Service Model
Topic Exchange
user_interaction_queue
Binding
Message
Message
Message
event.user.click
event.user.view
event.user.share
Tuesday, 10 September 13
62. Exchange
‘events’
AMQP Service Model
Topic Exchange
user_interaction_queue
Binding
➡Queue:
‣ user_interaction_queue
➡Exchange:
‣ events
➡Routing Key:
‣ event.user.*
Message
Message
Message
event.user.click
event.user.view
event.user.share
Tuesday, 10 September 13
67. Message
Exchange
‘events’
AMQP Service Model
Topic Exchange
Message
Message
Message
event.user.click
event.user.view
event.user.share
user_interaction_queue
user_shares_queue
Message
Message
event.user.*
event.user.share
Tuesday, 10 September 13
68. Message
Exchange
‘events’
AMQP Service Model
Topic Exchange
Message
Message
Message
event.user.click
event.user.view
event.user.share
user_interaction_queue
user_shares_queue
Message
Message
Can be done at runtime
event.user.*
event.user.share
Tuesday, 10 September 13
69. Message
Exchange
‘events’
AMQP Service Model
Topic Exchange
Message
Message
Message
event.user.click
event.user.view
event.user.share
user_interaction_queue
user_shares_queue
Message
Message
Click vs Share Conversion?
event.user.*
event.user.share
Tuesday, 10 September 13
70. Message
Exchange
‘events’
AMQP Service Model
Topic Exchange
Message
Message
Message
event.user.click
event.user.view
event.user.share
user_interaction_queue
user_shares_queue
Message
Message
Click vs Share Conversion?
event.user.*
event.user.share
Message
click_share_queue
Message
event.user.share
event.user.click
Tuesday, 10 September 13
71. Message
Exchange
‘events’
AMQP Service Model
Topic Exchange
Message
Message
Message
event.user.click
event.user.view
event.user.share
user_interaction_queue
user_shares_queue
Message
live_view_queue
event.user.*
event.user.share
*.*.view
Message
Message
event.staff.view
Message
Message
Staff vs user views?
Tuesday, 10 September 13
72. AMQ Model Wire
AMQP Overview
AMQP
➡ Function layer
‣Transactions, Exchange, Queues, etc
➡Transport layer
‣ Protocol format
‣ Data rep/framing
‣ Multiplexing, heart-beating, etc
➡ Model/component spec
‣ Exchange
‣ Message Queue
‣ Binding
Tuesday, 10 September 13
73. ➡ Model/component spec
‣ Exchange
‣ Message Queue
‣ Binding
AMQ Model Wire
AMQP Overview
AMQP
➡ Function layer
‣Transactions, Exchange, Queues, etc
➡Transport layer
‣ Protocol format
‣ Data rep/framing
‣ Multiplexing, heart-beating, etc
Tuesday, 10 September 13
89. Why RabbitMQ?
• Mature (born 2006)
• Acquired by SpringSource (now part of
VMWare) in 2010
• Used by companies like Nokia, Google,
Mozilla, vFabric, SecondLife, OpenStack
Tuesday, 10 September 13
90. Overview
• Written in Erlang/OTP
• Supports other protocols too - STOMP,
MQTT
• Many library supports - Python, PHP,
Ruby, .NET
• RESTful API is available
Tuesday, 10 September 13