Learn Anypoint MQ | MuleSoft Mysore Meetup #7
Estimated read time: 1:20
Summary
The MuleSoft Mysore Meetup #7 introduced AnyPoint MQ, a cloud messaging service from MuleSoft, explored by Spandra. The session covered the basics of AnyPoint MQ, its features like cloud messaging, multi-tenancy, and the ability to handle large payloads, along with a detailed live demo showcasing queues, encrypted messages, disaster recovery, and other functionalities. Attendees learned about the AnyPoint MQ connectors, message handling processes, and participated in an interactive quiz.
Highlights
- AnyPoint MQ is a multi-tenant service that supports large payloads and comes with built-in disaster recovery π’
- Participants engaged with a live demo on creating and managing queues within AnyPoint MQ π©βπ»
- Discussion on encrypted queues and how they bolster message security π«
- The session explained the concept of message acknowledgments and subscription types π
- Trivia time! Participants tested their knowledge with an interactive quiz π
Key Takeaways
- Understand the basic features of AnyPoint MQ like multi-tenancy and cloud messaging π₯οΈ
- AnyPoint MQ can support large payloads up to 10MB π¦
- Explore the advantages of encrypted messages and disaster recovery mechanisms π
- Learn about the different types of queues available - Standard, FIFO, and Exchange ποΈ
- Hands-on demo offers practical insight into the usage and configuration of AnyPoint MQ π₯
Overview
During the MuleSoft Mysore Meetup #7, participants were introduced to the ins and outs of AnyPoint MQ, a powerful cloud messaging service offered by MuleSoft. The meetup, led by industry experts, was designed to provide attendees with a comprehensive understanding of AnyPoint MQ's features and applications.
The session kicked off with an engaging introduction by Spandra, who highlighted the core functionalities of AnyPoint MQ such as its multi-tenant architecture and capability to process large payloads. Participants were treated to detailed explanations and demonstrations on managing queues, message encryption, and the serviceβs asynchronous messaging nature.
Concluding the insightful presentations, attendees got to test their knowledge through a fun and interactive quiz session, with some lucky ones winning MuleSoft vouchers. The meetup provided a perfect blend of learning and interaction, making complex topics easily digestible for all learners.
Chapters
- 00:00 - 03:00: Introduction and Setup The chapter introduces the session setup and mentions interactive elements like enabling microphones for direct feedback. It highlights a quiz at the end with a chance to win training vouchers. The speaker, Shubham, introduces himself as a professional integration at Millennium and a certified MuleSoft architect and developer.
- 03:01 - 06:30: Meetup Organizers Introduction In the chapter titled 'Meetup Organizers Introduction', Giridar, a senior architect and developer certified by Mulesoft, introduces himself. He mentions his certifications in AWS, GCP, and Azure, and his role at Hashton. As a leader of the Mulesoft Maiser Group and a Mulesoft Mentor, Giridar highlights their history of delivering amazing topics in past meetups and expresses gratitude for the support and input from participants.
- 06:31 - 10:00: Introduction to Anypoint MQ The introduction to Anypoint MQ includes a welcome message expressing the importance of participant feedback and interaction. The chapter highlights upcoming topics and invites members to reach out with suggestions or a desire to engage in events. The main focus is a presentation by Spandra, marking her first presentation in the Meetup community, where she'll introduce and demo Anypoint MQ.
- 10:01 - 18:00: Features of Anypoint MQ The chapter titled 'Features of Anypoint MQ' does not directly provide any content from a transcript or lecture that outlines specific features of Anypoint MQ. Instead, the transcript includes greetings and a brief mention of a speaker named Panna who references their experience in music and projects. This may be an introduction or transition, but no details about Anypoint MQ features are provided in the provided text. Further information or context would be required to generate an accurate summary of the chapter's content on Anypoint MQ features.
- 18:01 - 25:30: Types of Queues in Anypoint MQ The chapter titled 'Types of Queues in Anypoint MQ' begins with the presenter expressing gratitude for the session. The presenter mentions having experience in integrating multiple systems including SAP, Salesforce, Facebook, and Snowflake. The introduction seems to be more about welcoming the attendees and setting a positive tone for the session rather than delving into technical details of a specific topic.
- 25:31 - 30:00: Dead Letter Queue in Anypoint MQ The chapter introduces the agenda which includes understanding what Anypoint MQ is, its capabilities, the services it provides through Mulesoft, and a discussion on its pros and cons. The chapter will conclude with a demonstration.
- 30:01 - 33:00: Connectors in Anypoint MQ In the chapter titled 'Connectors in Anypoint MQ', the focus is on explaining the Anypoint MQ service provided by the Anypoint platform. It is highlighted as a cloud messaging service that supports multi-tenancy, meaning that a single queue can be used simultaneously by different applications. This aspect helps illustrate the flexibility and efficiency of Anypoint MQ as part of cloud services.
- 33:01 - 38:00: Message Acknowledgment The chapter titled 'Message Acknowledgment' discusses the capabilities of MQ (Message Queue) in a multi-tenant environment. It highlights that MQ supports large payloads up to a maximum of 10 MB. The chapter further explains the functionalities of the Anypoint Platform, which includes a user interface for managing Quantum Queues. Through this platform, users can easily handle message operations such as creating and deleting messages, exemplified through demonstrations within the UI.
- 38:01 - 41:00: Circuit Breaker Configuration The chapter titled 'Circuit Breaker Configuration' discusses the capability of sending messages using queues. It explores the UI that displays the number of queues created, their types, and encryption status. The UI is fully integrated with the Any Point Platform, making it easily manageable for developers.
- 41:01 - 44:00: Error Handling in Anypoint MQ The chapter discusses the error handling mechanisms in Anypoint MQ, focusing on the concept of a dead letter queue where undelivered messages are rerouted. It also covers the asynchronous nature of Anypoint MQ, explaining that publishers and subscribers do not need to be active simultaneously, highlighting the flexibility of message handling in the system.
- 44:01 - 53:00: Anypoint MQ REST APIs The 'Anypoint MQ REST APIs' chapter discusses the asynchronous nature of message consumption, explaining that subscribers can consume messages whenever available. It highlights the concept of messages 'in flight,' which refers to messages in the process of consumption, making them invisible to other consumers. Additionally, it mentions Anypoint's capability to handle nearly 120,000 messages concurrently in this 'in flight' state.
- 53:01 - 56:00: Limitations of Anypoint MQ Anypoint MQ faces limitations with message visibility when multiple subscribers are involved. Once a message is being consumed by one subscriber, it remains 'in flight' and is not accessible to other subscribers. Therefore, while in transit, the message is not visible to any subscriber other than the one currently processing it.
- 56:01 - 58:00: Audience Q&A and Conclusion The chapter titled 'Audience Q&A and Conclusion' concludes the presentation with a summary of key features offered by the independent video feature, particularly emphasizing the usage of REST API. It highlights the supportive message infrastructure and independent queue management. The discussed subject primarily involves cloud-based connectors and the overall functionality provided to enhance integration and user interaction. The session concludes with audience questions and final remarks.
Learn Anypoint MQ | MuleSoft Mysore Meetup #7 Transcription
- 00:00 - 00:30 if you want us to enable your mic we will enable that and you can ask directly and give us feedback okay so we have a quiz at the end where we will select three lucky winners who will receive a mules of voucher for training so we we have a two organizers for this Meetup uh myself shubham I am working as a professional integration in Millennium I am mulesoft certified architect and developer and
- 00:30 - 01:00 I'm AWS gcp and Azure certified so good morning everyone and thank you for being with us today uh myself I'm giridar working at hashton as a senior architect an architect and developer certified by mulesoft I'm also the leader of the meals of maiser group and meals of Mentor as well so uh we have delivered amazing topics in the previous months I hope you all enjoyed your support and inputs are very
- 01:00 - 01:30 important to us please do not hesitate to contact us if you have any suggestions or would you like to speak in any events or sessions through my Mysore group please please feel free to reach us also we have amazing topics are aligned in this month as well so today we have spandra with us and this is our first presentation in the meals of Meetup community so she is going to speak about any point mq and guide us through a demo of it
- 01:30 - 02:00 is all the best thank you thank you hello everyone this is panna I have like a good experience in music like I've worked on projects [Music] sure
- 02:00 - 02:30 let me know my favorite videos on my screen yeah it is yeah so I've worked on different projects like integrating um multiple systems like sap Salesforce Facebook snowflake so yeah and um yeah I'm happy to be here with you today and uh hope uh let's have a good session and
- 02:30 - 03:00 let me interact yeah thanks everyone we can get started now yeah today's agenda is like uh to know like what is any point mq and what we can achieve through in point WQ and uh What uh what this is the service provided by Mill soft so what are the pros and cons and uh followed up with with demo okay
- 03:00 - 03:30 now let's start so what is any point mq any point mq is one of the services provided by anyone platform and uh it is a cloud servicing uh Cloud messaging service which is a multi-tenant multi-tenant in the sense um one queue like the messaging service one queue can be utilized by different multiplication different applications at a time so that is what it is like
- 03:30 - 04:00 multi-tenant and uh mq supports large payloads like you can see here it is a maximum of 10 MB and we have any point platform we have a UI for any Quantum queue and through any point of reality which is shown yeah this is any point of view I we can easily manage uh messages and we can create messages we can delete messages
- 04:00 - 04:30 we can send messages uh we can um like using the queues you can see here uh we can see like how many queues we have created and what type of queues we have created whether it is encrypted or not so we basically uh this is a UI and it is fully integrated with any point platform so yeah and it is easily manageable uh for uh for anyone like a developer and then uh there is one more thing like
- 04:30 - 05:00 uh we have a dead letter Q which mq supports so if there are any messages uh that are not delivered uh to its proper destination that will be rerouted to uh dead related Cube and then uh any point MBO it's an asynchronous messaging service that means uh you don't have I mean like a publisher and subscriber need not to be active at a time like a publisher can publish a message to a queue and uh it doesn't need to wait for
- 05:00 - 05:30 the response whenever a subscriber is available it can consume that message so it is asynchronous in nature and any point of the supports like nearly 1 lakh 20 000 messages in Flight what is in Flight whenever message is uh in the process of consumption it will be in flight and so that um it will be not visible to other consumers as I told you like one you can be
- 05:30 - 06:00 utilized by multiple subscribers correct so let's say if uh there is a one message that has been already consumed in the process of consumption for one particular subscriber it will be in flight and so that it won't be visible to other subscribers if I open this you could click on this you can see message in queue and in flight so if a message is in Flight uh other subscribers can't
- 06:00 - 06:30 see that message so it supports these menu in Flight messages and in independent queue so this is what it is on high level and then if we go for features independent video provides like multiple features you can see here and the first one will go with rest API so any point of view uh it has uh connectors for example as I told you this is a cloud
- 06:30 - 07:00 service it is deployed on cloud what uh for example if you want to deploy the same queue to on-prem uh we cannot do it right so in that case uh we can either use any point MTO connectors that has been provided or we have risk Services rest apis so the true rest apis we can connect to any point mq there through the rest apis you can create a view we can like create an exchange we can send the messages to queue we can delete messages from the queue so those
- 07:00 - 07:30 operations are supported by rest tables as well and then as I told you like a large payloads it supports 10 MB of payload uh here so there is no limit for number of messages in a queue but there is a limit for the uh message size so and it is 10 MB and it is like a large pillow setting it connects and then message group so uh I'll uh we
- 07:30 - 08:00 are going to discuss about fifo that is one of the uh queue that has been provided by MTO so fifo in the sense uh first in first and first out like uh we using that you we can uh use messaging groups so that in one particular group we can have certain set of messages and we can create one more group so that it will have another set of messages so that grouping can be possible through fifaq and then Disaster Recovery Disaster Recovery uh
- 08:00 - 08:30 so uh basically any point of view it's like a high available service because you can see here we have uh an important to deploy to multiple regions and each uh region will have uh available at its own you can see here one two three four for North America if any let's say for example if Northern Virginia is down we still have three more availability
- 08:30 - 09:00 zones so that this region is still available like uh as one is down it doesn't mean like uh the others can uh uh help like the other uh availability zones are still available so that this we can still go on and uh use any point of view and in this way it provides High availability and then um we have a
- 09:00 - 09:30 encrypted cues so encrypted queues uh in the sense whenever we create a queue we can see I'll just open this queue it will have encryption so during uh creation itself we can enable this encryption so that uh any point mq uh will I mean it has a default encryption uh strategy is 256 so it will encrypt uh messages with that encryption uh
- 09:30 - 10:00 mechanism and if you don't want this default encryption you can still encrypt your messages before sending to cues from your end like whatever is a messaging uh like encryption strategy you want to use you can still go ahead and encrypt your messages but you have to make sure that encryption mechanism is enabled both at publisher and as well as subscription subscription in because subscriber should be able to decrypt
- 10:00 - 10:30 that message so this encryption like by default can be provided by any video and then usage information usage information in the sense if you uh have this is a like trial account um but if you open the access management under subscriptions you should see um any point mq if you click on any point mq then you should see something like this like which shows the uh use uh
- 10:30 - 11:00 usage like how many mqs are and how many queues are created like how many messages are in use how many APA requests um happened in those that data and the building uh like uh monthly billing you will get so that usage information we can see from access management if you have Enterprise Edition like Enterprise subscription you should be able to see like Whoever has admin access should be
- 11:00 - 11:30 able to see this usage and whenever uh for example if uh monthly subscription like uh the date has been for example if the bill hasn't been paid and it's been more than a month then admin will get a notification mq is still work it will still work it will let admin know that your subscription like your monthly bill is pending and we have to pay that one so that kind of uh
- 11:30 - 12:00 usage statistics we can see here and then um client management if you have client apps so we have both destinations and Client app destinations in the sense like whatever queues exchanges we create those are visible in under destinations and uh what is the client tabs client tab we can create a user
- 12:00 - 12:30 we can create a application like if you create it we will get a ID and a secret so with this idea and secret um a connection will be established between uh uh connectors and any point mq here with platform so that uh whenever we want to send any messages using any point M Cube connectors uh so if we should be able to make the test submission using this client ID and Secret
- 12:30 - 13:00 the client management and then in a point mq connectors so we have multiple connectors provided by any button so acknowledgment consume nag negative acknowledgment publishing subscriber so these connectors we can we are we will discuss in coming up slides and then delayed delivery from messages [Music] open this queue
- 13:00 - 13:30 we have a assigned default delivery delay if you switch on this one so you can provide a delivery that means whenever a queue receives a message um like uh how much time it should be delayed uh before a subscriber consumes it so that can be provided the time limit can be provided in here and then we have cues and message exchanges as you already see uh we have
- 13:30 - 14:00 choose one is a standard queue and the other one is fifo Cube and the other queue is exchange so these are the one of the features and environment and role based Access Control you can see here uh this is design um and we have sandbox engine really we'll have like a Dev staging and production environments right so for
- 14:00 - 14:30 each environment we'll have a different uh like different uh client ID credentials it's it's it's not like this whatever Q a queue whichever we created it's confined only for this particular environment and then for only for this particular region we cannot utilize a message from this queue in a different region or a different
- 14:30 - 15:00 environment so that is like a environment specific and uh use a role-based access control so um I mean this access uh for someone to create a queue that is actually if admin provides an access to a particular user then only he will be able to create a queue or to perform actions otherwise he won't be it won't have access so that is enrollments and base base
- 15:00 - 15:30 control access so these are the features of inequant energy um yeah you can see here like these are qid that means q names and type of queues whether they are encrypted or not that same thing what I've showed you here any questions uh do you hear
- 15:30 - 16:00 um answered so you can continue thank you now yeah type of cues so mq provides us with three type of queues one is standard queue and the other one is fifo so in standard view like what is a queue in general it is like a temporary storage area where we can store whatever messages uh that are received so that they can be processed later or they can be processed
- 16:00 - 16:30 at that particular time and yeah for in in normal Q standard queue um let's say there are 10 messages or uh 10 messages that has been pushed to that queue and uh whenever a subscriber subscribes it's it it doesn't mean that it will be processed in the order in which uh it has been the messages has been received so it can be uh by random it will pick any message and that will
- 16:30 - 17:00 be processed whereas if you want if you if your project has a requirement of um processing messages in a order that has been received then you have to go with fifo first and first out so um this is the difference between normal standard q and fifo whereas the other one is exchange exchange is uh nothing but it's like a topic where um a single uh whenever a publisher
- 17:00 - 17:30 publishes a message to exchange it will broadcast those messages so that uh multiple subscribers can um utilize and process those messages it is like a broadcasting of messages so you can see here a publisher publishes a message to exchange and exchange it will publish to uh queues which are bind to it actually so we have to bind uh whatever cues that need to be published and then from HQ uh
- 17:30 - 18:00 the subscriber this message can be published to a subscriber let's see Exchange and just try to open this one for example for now I have only we have one queue and one fifo we cannot bind the first thing first out Kyoto exchange because a question first out is like a order basic it is uh if we push
- 18:00 - 18:30 in if we have a bind to exchange then the order main may not be achieved and we can't even like if you open this one it don't even show you that free for queue it will show you normal standard cues that can read by select this one and selected cues successfully bounded [Music] by select this one you should be able to
- 18:30 - 19:00 see bound cues so S2 is one of the key that has been downloaded and now whenever a message has been published to exchange that message uh will be uh published to whatever cue that has been bounded here we just bounded like one Cube but we can bound multiple Clues and the limit is like 450 cubes we can bind these many 450qs maximum to an exchange
- 19:00 - 19:30 and each uh each queue can have like multiple subscribers so yeah these are the type of queues that are available and then uh yeah dead letter q is is also a queue which will uh be utilized to uh publish the undelivered messages like for example uh whenever we received a message uh in that queue and
- 19:30 - 20:00 we try to subscribe it and there has been some issues in our applications or for some reason that message has not been a processed completely to the uh desired destination then that message can be rooted back I mean automatically can be routed to dlq so that we can go back to dlq and check like and can analyze like what could be the reason that this message hasn't been consumed by the destination and uh whenever we create a dlq we
- 20:00 - 20:30 should keep in mind that uh what should be whatever is the parent queue I mean what is whatever is a parent queue that dlq should be of the same type if it is a standard queue the dlq that you created should be a standard key only if it is a fifo the DLK should be free form and for example when we created this one or I try to create
- 20:30 - 21:00 [Music] and here you can see while creating these many options so time to leave for a message in within a few it's uh by default it's seven we can have increase it to 14 so maximum it will allow its 14 days so after 14 days
- 21:00 - 21:30 whatever messages that has been in this queue they will be deleted automatically so maximum time to live is 14 days and then acknowledgment timeout when a message has been consumed within like this is default two minutes uh it can you can increase or even decrease as per your requirement within that time if the message acknowledgment is not provided like it then the message will return back so if it is acknowledged the
- 21:30 - 22:00 message will be deleted from the queue if it is not acknowledged it will return back to YouTube so and then assign uh default delivery delay so we can assign uh some time so that it can deliver uh it can delay the process of delivering messages and then subscription if we want a default subscription provided by mq you can you can click on
- 22:00 - 22:30 on if no you can have your own subscription uh sorry all encryption at your application Level and then you can push those major messages to clear now assign a dead letter q so please show us um yeah I mean it will uh show you like whatever available uh queues you have so that you can select one payroll after 10 minutes so whenever as
- 22:30 - 23:00 I told you it uh dlks for UNT delivered messages so if after how many retry attempts that message should be delivered to dlq so for example in our application there has been a error occurred out for the first time and if you if we give like two it will retry for two times and then after two items also if it's still we are facing that same issue this message automatically be
- 23:00 - 23:30 uh like send to DLK and this by default it is 10 atoms but you can take how many atoms you want we try to be and then they can create Q because this is how you can assign it later and this test parent will be the parent queue and uh to the assigned dlq
- 23:30 - 24:00 now as I told you like if parent queue is a standard dlq should also be a standard Cube if parent Q is a fifo then DLK should also be preferred doesn't it and yeah and whatever uh whatever dlq you want to assign to a parent queue it should be of the same region and from the same and environment we cannot uh
- 24:00 - 24:30 assign our dlq from different environment or different region which they should be up from the same regions will receive a message to the queue right and whenever a consumer uh consume trying to consume that message uh based
- 24:30 - 25:00 on after consumption if it is like uh if we we can acknowledge it directly like we have multiple modes of acknowledgment we can I will discuss it in coming up slides now uh if that message that has been uh consumed if that has been subscribed if we acknowledge it then uh that message will be consumed uh and then that message will be deleted from the uh queue whatever we have subscribed
- 25:00 - 25:30 and then once it is consumed the consumer will wait for the next message that will come so it is like a happy happy path then there is nothing to do with the DL Cube it is like a proper like without any errors a message will be consumed now if we don't acknowledge it if we didn't acknowledge whatever message we got it will uh search if it will check whether there has been any
- 25:30 - 26:00 redelivery items that has been assigned like if you can see right this they have assigned um this is like maximum delivery items so now I gave uh two it will check whether this items has been added or not like uh has been provided or not if it is provided then if then it will check whether this maximum delivery atoms has been reached or not uh whether
- 26:00 - 26:30 it is the first redelivery atom top if it is a secondary delivery item and it will check if that redelivery items exceeded like it's uh equal to or more than 2 then it will uh move that message directly to dlq that means it is not delivered correct so that uh the acknowledgment is not provided so that message is not consumed and that will be rewroted to dlq if redelivery policy is not defined
- 26:30 - 27:00 I mean for example nothing has been provided no redelivery then uh it will uh actually wait for the next message the consumer will actually wait for the next message if redelivery items are not exceeded uh then it will uh again it will uh wait for the consumer to consume because it is not exceeded and it is not acknowledged so that message will go back to queue correct so it will wait for the consumer to consume next message
- 27:00 - 27:30 and this uh this will repeat again it will again the consumer will wait for the message it will consume and then it will check again whether it has been acknowledged or not and if it is not acknowledged it will check for the number of retry items if it reached to maximum retry items then it will move that message to dnp so this is how dlq will work yeah now coming to uh
- 27:30 - 28:00 the type of connectors so uh the from uh application like from here from UI we can directly create a queue we can directly like add a message to uh I'll show you for example this is uh we created a test to queue and we have a message sender option directly here and we can send either text or a CSV or a Json so if it is not CSV or Json and if
- 28:00 - 28:30 you want to send an XML payload then you can select the type as text and you can add your XML payload and you can send it for now let's say um so this is a pillow which is a text message browse messages from here by default it will be 20.
- 28:30 - 29:00 so these are the previous messages the one which I just sent now this is the one this is the text message so we can I mean what I'm trying to say is from UI you can directly push a message to a queue so that if there is a subscriber actively listening to this queue that will consume this message and one more thing if now
- 29:00 - 29:30 see here it's in flight why because whenever we are trying to browse this browse this message that means we are trying to uh it process these messages like now these messages are owned available for a different subscriber because they are in in flight
- 29:30 - 30:00 if I return these messages back to queue then you should be able to see I mean it will take some time but these messages will come back to you then uh a different subscriber should be able to consume these messages so click I mean it will take some time it will come back to you because we return those messages back to Q so we I mean like even though if we browse it from click from UI then also you should make
- 30:00 - 30:30 sure that messages are not locked that means if someone is consuming uh if you are not consuming it but you are just browsing it you have to make sure that those messages are returned back to queue otherwise they are not available for the subscribers now uh yeah I mean from UI as we are doing these operations directly we can uh buy it from application we have to uh
- 30:30 - 31:00 achieve the same thing so mq provided some connectors uh to us so that uh inside your application we can use these connectors and we can achieve the same operations so we have a subscriber connector subscriber connector uh it's used to like uh subscribe a subscriber message from the queue like we have to uh specify from which queue we have to subscriber message so that can be done using subscriber connector and through
- 31:00 - 31:30 publish connector we have this one publish connector we can uh whatever message we want to publish to our queue particular queue we can publish that message and then consumer uh consumer is a connector where we can consume one message at a time for example in your cured like there are 10 or 20 messages like using this consumer connector you can process one at a time and then we have acknowledged and uh
- 31:30 - 32:00 Network knowledge uh connectors also so acknowledge uh for example in your application um uh there are different mode of acknowledgments as I said before so if you don't want to acknowledge the message for example uh uh if you want to acknowledge a message only after your flow has been successfully processed that means you
- 32:00 - 32:30 manually want to acknowledge it that at that time we can use an acknowledge connector so uh you can acknowledge that message within the flow at whatever point you want and then uh Knack this is a this is a connector to not acknowledge a message like why manually we are saying we don't want to acknowledge this message so that after you uh if you if you send neck then that message whatever you try to consume uh
- 32:30 - 33:00 it will go back whenever you don't want to delete a message that has you as you consumed it uh and you if you send Nat then it will go back to the in queue so that it will still be available with you uh it won't be deleted these are the connectors and then yeah message acknowledgment I was talking about this acknowledging messages correct so once in
- 33:00 - 33:30 um one sec uh subscriber receives a message so we should uh we should give some sort of acknowledgment to the queue correct like saying okay we received this message uh we consume this message or we receive this message but we didn't consume this message so in for that thing we need an acknowledgment that NATO is sent back to you and we have three types of acknowledgment modes one is automatic automatic acknowledge mode uh when we
- 33:30 - 34:00 have this in our connector uh selected uh automatic as acknowledgment mode it will acknowledge like we don't have to do anything manually it's just one the flow is successfully processed then by default it will acknowledge the queue it's just like once the message is received uh from the queue like subscriber this is a message from the queue and it has been processed in the flow the successfully then an acknowledgment will be sent
- 34:00 - 34:30 automatically to you so that that message can be deleted from the queue and then we have immediate technology mode immediate in the sense like once you receive a message from the queue uh before uh dispatching it that message to the rest of the flow because um subscriber will be in the source spot correct in our flow so once it is uh received once it receives message it will automatically like at that moment
- 34:30 - 35:00 it will send acknowledgment saying message has been received it doesn't wait whether you have consumed that message successfully or not it will just once you've received it it will directly acknowledge saying that uh that message has been received and that message will be deleted from now uh the other mode of acknowledgment is manual as I told you uh before manual is like you you have to send an acknowledgment uh instead of using like a automatic or
- 35:00 - 35:30 immediate way we uh whenever we use manual acknowledgment as a mode of acknowledgment in the connector you should be able to uh you will you will get acknowledgment token actually you'll receive acknowledgment token as an attribute from the subscriber you have to save the technology token and then in rest of the flow it at whatever point you want to acknowledge it so you can use that token and you can acknowledge
- 35:30 - 36:00 the message either you can acknowledge it or you can like Network acknowledgment you don't have to if you send an ad that means uh you don't want to delete that message from the queue from the application you have to take care of sending acknowledgment yeah so whenever in connector configurations uh whenever you want to add a connector for publish consumer
- 36:00 - 36:30 anything these are the basic three configurations that we require URL is nothing but to which region you have deployed so this is the URL you can directly use this URL and then client Italian secret is nothing but from the client apps so you can add this client ready and this secret here and then you are good to go use this connection details
- 36:30 - 37:00 yeah and one more thing so um in a subscriber let's say for your application uh you are calling external apis or external systems and let's say for example uh you are subscribing to a queue which has 10 messages uh like as an example if you have 10 messages and then you will receive uh those uh 10
- 37:00 - 37:30 messages through subscriber correct and in your flow you're making a call to external uh apis or systems at that time let's say that external API is down for five minutes or like for for 10 10 minutes but as we already subscribed to those messages uh those messages will still uh go try to process and they will fail resulting in unnecessary uh errors if we
- 37:30 - 38:00 have uh I mean if there is any system appear that is down we can use reconnection strategy but if you use reconnect strategy it is done it will let that application flow will be executed and whatever error details probably we require that we should be able to get it but if you want to reconnect to it after a certain amount of time so we have a circuit breaker configurations in our connector like uh
- 38:00 - 38:30 mq connector that has been provided if you use circuit breaker it will actually retry like it will reduce uh the uh unsuccessful items to connect to the external apis for example like and it has three states like uh how uh how this can be performed is like uh for the first time let's say uh you you subscribe to a message and there is an
- 38:30 - 39:00 external API that you are trying to connect and there is no issues it worked uh perfectly fine and you received like that message has been published to uh like or that message has been processed and uh certain required destination has no more than message to the destination or the flow is successful then that state we call it as a closed State and uh I mean it doesn't uh there
- 39:00 - 39:30 won't be any much difference to uh whether we have whether we use circular or not it is like a happy path it worked fine but let's say your application uh continuously for two or three times it is failing and at that time it uh you circuit breaker uh will know in circuit breaker we can um actually provide what type of Errors uh that we are expecting if it is a
- 39:30 - 40:00 connection error we are anticipating and if that connection error happens then circuit breaker will know okay this error has been occurred now uh it will we can provide how many times it can rewrite in that way and then if uh if retrie type but it's still the connection is not happened then it will the state will go from close to open that means there won't be any uh messages that will be processing from now onwards once uh that uh phase has
- 40:00 - 40:30 been that state has been changed to open and then uh we will provide some uh time right as I told you then uh if that time has been reached like there has been a couple for example we we gave at that time as two minutes and now the time has been uh it has been like elapsed now again circuit breaker will try to uh process a message but
- 40:30 - 41:00 this time it won't process everything it will just try with a single message it will try to process a single message and then if it is successfully processed then uh the process of this state like if it successfully process one single message that means it is in half open State and once this is process successfully then it will go from half open state to closed okay and then uh circuit breaker will
- 41:00 - 41:30 know okay this application is working fine now and it will be in closed status if even after processing like one single message it is not a processed successfully and it is still giving out errors then it will still be an open State and no message will be uh processed like uh circuit breaker will stop consuming make subscribers stop consuming the messages so that is how circuit breaker will work and I think we can have a separate
- 41:30 - 42:00 session for circuit breaker we can have a POC and we can look at uh through circuit breaker for now it is like a high level overview circuit breaker okay and then yeah we have I mean we'll get these type of uh these are the possible errors uh if we use in any point w connector we may get like mile acknowledging it if uh and
- 42:00 - 42:30 uh if within a time period if you're not acknowledge a message it will throw acknowledge uh error and timeout error while publishing if you're not able to connect to a particular particular queue uh it will throw error like for example if you provide a incorrect credentials uh like you are trying to consume a message from Dev environment but you provided a like a stage URLs or something like that it won't be able to publish those
- 42:30 - 43:00 messages right it won't be able to consume connectivity errors will get if you if you give a incorrect Q name you will get destination not found so these are some sort of uh errors that will receive and using connectives yeah and then uh one more I mean this is one of the features we discussed before correct any point in your rest apis so
- 43:00 - 43:30 um uh as I told you like we cannot deploy any point of view in on-prem but uh still if you want to use uh we have connectors so that we can connect our applications to any point mq and then we also have rest apis so um the application can use these test apis to connect to any point mq and we can perform the same operations let how we
- 43:30 - 44:00 do it through connectors like we can create a message we can publish a message we can subscribe to our message that means we will receive messages and we can even get statistics of the uh and what are the three different uh APS that are provided are mq admin API brokerage admin API is uh it will manage the destinations destinations in this
- 44:00 - 44:30 institute whatever we have like through admin API we can directly create uh through rest API we have to provide a few details so that it will directly create a queue in here without using UI or without using UI so we can create a queue we can create an exchange so you can delete a queue we can perform those operations uh using admin API okay and then a broker API this broker
- 44:30 - 45:00 API using broker API we should be able to retrieve message I mean here in admin API we will be able to create a queue uh we won't be able to push any message to that it's just like admin level like we should be able to create and manage the skills whereas broker API is used to push any message and to retrieve any messages from your queue so those operations can be done using a brokerage whereas this stats API used to give the
- 45:00 - 45:30 statistics like uh how many queues has been created how many messages are there in a few uh that kind of information we can get it from stats and just show you [Music] Instagram
- 45:30 - 46:00 so what are all the end points that has been like what operations we can do using uh admin API that we can see from here if you go to a summary you should see these many endpoints they have a uh I mean based on our requirement it doesn't mean we have to use all of them but the these many operations and these many endpoints are provided for us so we can utilize any one of them if you can
- 46:00 - 46:30 see uh I was talking about creating a queue correct so you can see here patch get put delete this is the URL uh rest API we can connect to and here you can see organization ID environment ID and region ID and qid qid is nothing but uh the Q name with which we want to create a queue and organization ID environment ID we can get it uh either from the URLs directly
- 46:30 - 47:00 you can see here I was in design right and if you click on your you should see organizations and this is organization ID from URL and it won't change like for this environment this organization ID organization ID will be same across environments which is an environment ID will change this is for design if you create a Dev environment it will have different ID and then destination is uh this one
- 47:00 - 47:30 US you can see you can have it from here also mu Us East one so this is the region uh destination region ID and they are they are same and then test it or you can see I selected testing that is a q q ID so in this way you can fetch these environmental uh organization ideas from the URL or your admin also can provide
- 47:30 - 48:00 those details like if go to access control so from here you should be able to see business profiling um [Music]
- 48:00 - 48:30 [Music] here also [Music] with the organization ideology environment ideas we can get it from environments as well
- 48:30 - 49:00 [Music] you should be able to get it and otherwise yeah you can directly have it from this envelope it is the static value it won't change [Music] you can uh you can have these IDs and then you can use them so in I mean during demo I'll show you like how we can create but yeah if you open let's say put you can have this request format so
- 49:00 - 49:30 Default Time time uh delivery delay whenever you are creating a queue then you can send dlq details that that means you have to create a dlq first and then you can send the dlq name like you can add that name you can have maximum deliveries like here by default instant you can have whatever delivers you have
- 49:30 - 50:00 if you don't want to assign any queue you can just remove this one like you don't have to send these two Fields And if you click on um I mean if you send request that you should should be able to create it and if you want a FIFA like a standard queue if this is the standard view if you want a FIFA to be created then there is one key value pad that you have to add that is fifo Colin a Boolean value is true if you sign true then fifo will get created Q will get
- 50:00 - 50:30 created and for both FIFA and standard Q This is the URL this is the end point but if you want to create an exchange then you we have a different term so this one destinations here we have q destination q qid but here it is exchanges and exchange ID whatever exchange name you want to use
- 50:30 - 51:00 you can use it and in the same way we can do a put request uh but we just need to provide whether it's a encryption you need encryption or you don't need an encryption it will respond so yeah this is for admin that's why admin API
- 51:00 - 51:30 yes [Music] the other one so same uh how we have for admin we have endpoint so if you want to send a message so you can send a message to the particular queue and uh the thing uh is like you have to okay I
- 51:30 - 52:00 just want to show you when we open queue those you can see this ID right here this is nothing but a message ID if you provide this message ID it will create message ID with whatever you have provided otherwise it will by default create a random ID for your message okay now if you want to provide ID you
- 52:00 - 52:30 you need to send that message ID as well and then if you uh if you retrieve if you want to retrieve that messages from Google queues you can have a get call and um yeah so and then we have stats
- 52:30 - 53:00 same we have we have been provided with multiple landforms so yeah for stats actually we don't uh do any modifications or anything correct so it is always get called it just will we want to retrieve information so we can retrieve information at either environment level or organization level so those details will receive like a
- 53:00 - 53:30 monthly billing amount like what are the number of queues what are the number of messages and all those details and yeah one more thing I just want to show you yeah in access management I was talking about this usage correct uh where we'll get uh usage details and we have audit logs as well here you can see under organization
- 53:30 - 54:00 you can we have multiple filters here you can select any point mq you can select either exchange Q client anything so that you should be able to see this type of information uh at what time it has been created like or modified you can see here action is create so this is time at what time it has been created and whether it's a queue or it's an exchange it is so you can see who created this queue
- 54:00 - 54:30 those details you can get it from audit log you can even download this one once you download you should see an information like this it's like what is the product it's a Navy point of view what type of operation has been done with action you can see delete Q delete your Purge queue create queue
- 54:30 - 55:00 um objects select uh API q names sorry and who did these changes those usernames you can see whether it has been successfully or processed or not failed in this small sentence we have successful acrosses action has been performed successfully like in that particular queue what is the message you have those details you can see and
- 55:00 - 55:30 yeah so you can use audit logs also to check actions that are performed on queues and yeah you if you want to delete a queue you can directly have this option delete queue if you only want to delete messages inside queue you have to use Purge messages so [Music]
- 55:30 - 56:00 yes so yeah these are the three rest apis that has been provided by any point mq and uh and limitations of limitations I mean I told you like we cannot deploy this to on-prem so but still we have other options to overcome this limitation we can use rest apis we can use connectors to connect to an
- 56:00 - 56:30 important Cube and then uh if it if the payload is more than 10 MB we cannot like send that message it I mean that uh queue will say throw an error like payload is too large so it is like confined to 10 MB yeah and then we can proceed with demo
- 56:30 - 57:00 so any questions so far we have one question like from yogesh in any point mq in any point mq is there any option like message selector for example like a message have different message properties headers and we need to consume that message with specific using that particular specific header or property so okay okay whenever you uh publish a message so you you can Define user properties
- 57:00 - 57:30 for example if a subscriber uh want to um uh let's say I'll try to create one a normal Cube so you open this
- 57:30 - 58:00 message send array so you should be able to see some properties if you want uh anything uh like if a subscriber want to utilize the properties from a publisher then it can be utilized from the user properties only like you should specifically send them as a user property so that a subscriber will receive them as attributes okay and those attributes uh you should be able to use
- 58:00 - 58:30 it doesn't serve your question does that answer your questions your thanks okay do we have any more questions okay you can continue with the demo if if you have any question you can ask right out anytime yeah hi uh hi this is Shiva so initially there was a mention of disaster recovery for for the enqueue but yeah we did see that whenever the region
- 58:30 - 59:00 changes the URL of that queue changes right so how would that work URL of the queue uh because uh so this one you are talking about so this is U.S east one so if you change the [Music] reason of this I think this is yeah thank you could you uh like describe your question
- 59:00 - 59:30 more like I think uh see for example if you uh if you suppose if you deploy a queue to this uh Us East so internally I mean uh internet it uh mulesoft is deploying your uh queue to uh multiple like availability availability zones yeah so the exact number like how how many uh availability zones they are deploying to they have not like revealed that but so I mean yeah so they are
- 59:30 - 60:00 deploying to multiple availability zones for for for whatever reason like you are deploying to so does that does that explains like your your question um yeah I mean those messages will be like uh there will be in different availability Zone like they are not lost so you can still get them right you can still use it but what what happens in the connector is uh you give this URL for the consumption of current messages right if
- 60:00 - 60:30 yes yes I was I was just confused of how how that works yeah okay if you have and we I think we can [Music] have some new application also we can achieve that for example if you can uh in the connector if you can give those URL details as a dynamic value instead of directly providing them
- 60:30 - 61:00 right so uh either any of these uh URLs should be part of it then we can achieve like if one is not available and the other it can pick up correct okay I I don't think it will be automatically like we still need a human intervention like whenever disaster I mean during Disaster Recovery okay
- 61:00 - 61:30 so and I mean we should be able to change this URL uh to the available availabilities on available availability soon and then we can deploy our applications again and we can perform our operations correct thank you okay thanks any other questions
- 61:30 - 62:00 do we have any more questions or hello uh um electronic
- 62:00 - 62:30 sorry can you repeat your question your voice is speak loudly yeah is it better now hello yeah yeah so the first few the normal queue and the first Gene first note I can understand the second The Exchange how does that work so we need to bind these other type of cues to The Exchange then only it can work we can yes yes so I mean to which uh so exchange we have to specify to
- 62:30 - 63:00 which queues that messages need to be uh I mean like it is a broadcaster right so we should specify to which queue that messages need to be published again yeah you can show in the UI that will be helpless or is it kind of the behavior it is like a type of queue on me where
- 63:00 - 63:30 it it will have cues uh within it and then those queues will be published like it's like a one too many uh okay so yeah you can see like how many views you want to find that many queues you can find so that once this exchange receives a particular message that will be uh broadcasted to more than one queue so that all the other queues can be uh let go utilized for like the subscribers
- 63:30 - 64:00 should be able to use the messages from the case you can see here yeah those messages will be published to this queue okay thanks thanks
- 64:00 - 64:30 hello yeah I have one question from it here okay yeah so uh you showed about the encryption property while creating a queue right so um so when we are posting the message to the queue it is an encrypted stage but when we want to see the message in the browser like when we click on the get message it comes up it will show yeah it shows the message in a decrypted value so yeah yeah so I mean this is a default
- 64:30 - 65:00 encryption as I told you correct uh so I'm in while the queue uh okay I'll tell you one thing whenever we any uh publisher publishes a message to a queue apart from uh apart from text if any other format of payload that comes to a queue like it can be CSV Json or XML or anything it will uh convert that to a string and saves a
- 65:00 - 65:30 payload uh within the queue that is one thing okay and then if we enable uh encryption any point mq has its own encryption and I mean it will internally have that encrypt encryption happened okay I mean we will still able to see that messages like that yeah and yeah so the messages are getting decrypted and uh being shown in the UI right so do you
- 65:30 - 66:00 suggest to put explicit encryption yeah that could be like if you if your client doesn't even want to see those messages like in this way then we have to implement our own okay like you can you can encrypt it using base64 or something you can publish that message to a queue and then at the subscription and you can decrypt them okay just just to add like this encryption is only for the queues like when the data is driving from one key to another not
- 66:00 - 66:30 for uh the user we can say that when when you say like when we go and in the browser and we see we can see that even when we are getting the data in our API so these are not application Level encryption this is Q level encryption which is done internally like from exchange to queue it is going or suppose from one queue to another it is going then at that time it is melting for application Level you need to write some logic to manually do some encryption logic over here okay understood thank you
- 66:30 - 67:00 thanks Abhishek for mentioning then point so yeah I mean uh generally it is uh like recommended to to to use your uh encryption uh like because see uh everyone like uh see if a user like developer wants he can see the code uh see the like you uh I mean the value that they don't want to see so we we should uh we should like uh and this like stop it for everyone so we should do this uh user
- 67:00 - 67:30 encryption for uh in the customized way okay so yeah any other question I think we don't have any so you can uh proceed to demo yeah through connectors I was just saying right like whatever operation We
- 67:30 - 68:00 performed from UI that we should be able to do it from application also and you can see any point mq provides these many connectors and if it is first time uh you this connector may not be available in your studio you just need to download it from exchange like you can log into your exchange and you can search for any point mq then you can download this one and you should be able to use them now uh for example if we go with publish
- 68:00 - 68:30 let's say if I open this one you should be able to see a connection configurations I just open this one so I just externalize them so this will be the URL like uh you can copy it from here and then client ID and secret is the one client tabs we created it right and as I told you like it is like environment specific these credentials we cannot use
- 68:30 - 69:00 for other environments some other regions it would be confined to this particular region and this particular environment okay and uh if let's say if for example uh in a project two different groups are using um this one same Client app and let's say one group they are they don't need uh this one this anymore then to confine to restrict these credentials you can
- 69:00 - 69:30 regenerate a secret so that and you can share this new credentials with the uh group that still wants to use them and the other group this restriction will represent they won't be able to connect to mq anymore you get so we can when we generate the regenerate secretly and we should be able to use those credentials in here okay
- 69:30 - 70:00 and then yeah if you see uh destination is nothing but the Q name to which queue we want to connect to we want to publish our message too so that Q name now here I just kept it attributes dot query name because from request I'll be sending like to which queue I need to send a message but in your application if you know like which
- 70:00 - 70:30 particular queue you are specifically using for your flow you can mention that queue and here in body we can send the payload uh the message what you want to send and this is user properties I was talking before someone asked right like if you want to use properties from the publisher how can we use them so whenever you are we are publishing correct along with payload if you can uh published some user
- 70:30 - 71:00 properties so that you can differentiate your messages or for example if you're using same view for two different use cases example and then you can have operation for example for one queue you are using this queue for publishing a publish message and the other use case you are using uh this queue to perform a different uh operation like to get messages or anything you can Define that
- 71:00 - 71:30 operations uh to whatever you need and you can publish this message so once you've publish this message those user properties you should be able to see here or when you open when you browse your messages you should be able to see those properties and these properties which you user properties which you used during publish which you send you should be able to uh retrieve them as an attribute from subscriber like when the subscriber subscribes to a message from
- 71:30 - 72:00 this Cube then you will get attributes from here in that attributes you'll have those user properties and you should be able to use those properties in your flow Okay so yeah that is one and then I was yeah you can I was talking about message ID correct so if we if we specify any message ID then with this message ID that message
- 72:00 - 72:30 will be pushed otherwise it will enqueue itself like it will generate a random message ID are they sure and before so this one this is like a random message I already created otherwise whatever message anyways we send it will be there and then message group ID uh we were talking about the fifo correct so first in first out so if you want to have a
- 72:30 - 73:00 group you can specify particular group under which you want those messages to be sent and then uh that can be defined in here if you don't want any message groups or anything you can simply ignore this you don't have to mention anything and then this is the delivery delay unit if you want any delay in the message okay so this is for the publish connector which you can use and let's uh when
- 73:00 - 73:30 subscriber connector here in subscriber the same connector configurations if you have client ID and secret and URL if you have different uh if you want to subscribe to our different Tokyo from different region then you may have a different connection you have to create connection configuration and then you have to specify from which queue you want to fetch messages which you want to subscribe messages
- 73:30 - 74:00 and then if you see here we have a subscriber type that means either polling or prefetch so what is prefect um by default you will have a prefetch as a subscriber type and you will have 30 as Google messages you can change this one so what is preferred for example if you have 100 messages in our queue if we give subscriber type as prefet in 100 it will
- 74:00 - 74:30 fetch all the 30 messages and it will store in local so that later you can subscribe like use those messages here if you I mean you can specify uh any number that is design number if if it is falling you have to mention how many messages you want to fetch and maximum size if you for polling you can fetch is only
- 74:30 - 75:00 10. if you if you give a size greater than 10 it will throw error saying fetch size can't be greater than that so you will be able to fetch 10 messages at a time and uh frequency at what frequency these messages need to be pulled like for every one second or for every one minute you can specify that frequency in here so and yeah
- 75:00 - 75:30 if you for example if you have pressure prefix as a subscriber type and if your acknowledge mode is immediate then that means once you once these messages are uh subscribed like messages are retrieved as they will be stored in local correct and then as the acknowledgment mode is immediate those messages will be deleted from queue so you have to um make sure like this very specific
- 75:30 - 76:00 like if you want those messages to be deleted as as um as long I mean as fast as uh it got received you can have immediate or you can have uh the other modes and if it is auto as I told you these are the acknowledgment modes once the flow is successful then only it will acknowledge in manual we have to use either a Secure net connectors to acknowledge and then acknowledgment timeout uh you remember like uh we when we created
- 76:00 - 76:30 here we are providing some acknowledgment timeout by default it will be two minutes but in your application from your application if you specify sign some particular timeout so this will be given priority so I and whatever connections you provide through connector will be given priority and uh it will work accordingly so acknowledgment timeout you can increase you can decrease whatever you can do
- 76:30 - 77:00 um yeah and then this polling you can see strategy correct it's scheduling strategy if it is a fixed you can directly provide two minutes or hours million milliseconds anything you can use cron expression also uh cron expression if you are not aware so we even we have multiple online tools for example your application needs to be
- 77:00 - 77:30 subscribed uh some messages only at some particular time for example if you see we have I mean this is one of the online tool free formatter you have if it is seconds you can when it's hours they'll even select if you select this one every once again starting at zero zero so for every second uh you want your uh subscriber to poll messages okay then you can see this is a crown
- 77:30 - 78:00 expression so if you want what exactly is this and then if you paste it here and if you say describe expression it will say every second starting at every 0 0 that means for every second every single day at every hour if you give minutes or or hours or day let's say every day every day starting on Sunday
- 78:00 - 78:30 it it has to [Music] be yeah this one this is a current expression so if it is like you have specific time that has been given to you when you can you need to uh pull uh messages then you can use a crown expression okay we have tools to get the con expression if you are not aware how to use that one we have one question uh like from yogesh if we make it scheduled frequency
- 78:30 - 79:00 can we change Chrome expression after deployment after deployment oh yeah if you yeah you can do that but what you have to do you have to explain this one and you you have to place it in your property files and in runtime properties like once you deploy your application to Cloud right there you can see runtime properties there you can Define and whatever cron expression you need as it is externalized it will uh I mean
- 79:00 - 79:30 you you might have added in any of your Dev stage of broad properties right so you can yeah replace it but every time we get deployed that random property as you are adding uh manually over there that will be removed you have to make sure if there is any new deployment you still have to go and add the current expression again is it
- 79:30 - 80:00 the query we have one thing like no week from Pratap like no we can't how to change during strategy can you like explain your question so I think he is telling in reference of yogesh so uh what yogesh is asking he's saying like if we have choose scheduling strategy and then we are choosing Crown then without redeployment can we choose a can we change the crown expression
- 80:00 - 80:30 yeah but if you want to change the strategy itself then yes you need to make the changes in the code and read it send an application even for changing the wrong also you need to redeploy even though in the runtime property like you are going to your deployment mode and they are in the properties you are changing you need to apply the change and it will redeploy your application again it's like it's kind of restart even though you externalize it using the property files
- 80:30 - 81:00 do we have any more question oh okay you can continue yeah I told you about this right so you can configure the circuit breaker here every time behind you can give timeout
- 81:00 - 81:30 we can we can specify like when whenever particular error happens then the circuit breaker should work if it is it by default you can see time what we can specify if it is a timeout uh then circuit breaker will not get this error has been occurred we can give trip timeout so if whatever time we mention another trip timeout uh it will wait uh till this time has been elapsed and then
- 81:30 - 82:00 uh it will try to reconnect again uh I told you about the half open State correct so it will try to process one message and see if it is success or not if it is a success then uh it will change the state to uh closed and it will work normally like uh messages will be pulled and flow will be executed yeah so this video subscriber and acknowledgment yeah this is a
- 82:00 - 82:30 acknowledged connector um I was saying correct like if we have manual if we have so uh here if it is a manual then we have to provide acknowledgment uh manually that means it won't happen automatically we have to uh once we change it to manual from here uh we'll
- 82:30 - 83:00 get a attribute which is SDK token and from uh we can save the tattoo dividends area I saved it in a variable so that this variable you can use while acknowledging it like if you uh place that sck token here then that means this flow has been successful at the end we placed it and we are saying okay the message now can be acknowledged and that message can be deleted from the queue for example if anything happens like it
- 83:00 - 83:30 is not going till here if any for example in this group if any syntax is run anything in here database or any anywhere any other records you go to error handle correct and in error handling uh we can say we can I mean this same token the solvent token it can be used for both acknowledgment and not acknowledgment if we send this acknowledgment token that means we are not we don't want to acknowledge it and we may want that message to be written
- 83:30 - 84:00 back to a cube so that is how we can use both act and Nat and yeah there we have one more consumed to hear it consume we can uh consume one message at a time we just same connector configuration we just need to mention uh from which queue we want to consume a message and once we consume that message we want it to be immediately
- 84:00 - 84:30 acknowledged or manually we want to acknowledge it so and how much I mean polling time like which interval we have to call these messages so those things we can mentioned and yeah consumer useful like two kinds of one message at a time so you see we don't have any configuration related to number of messages we either prefect or polling so
- 84:30 - 85:00 I'll just try to show one particular product it works
- 85:00 - 85:30 so it's deployed and zero eight one this is one so I am
- 85:30 - 86:00 sending Q name as a query param I want to make it Dynamic you can see where a few type standard and message like uh for now I'm just using a string but in in uh real time you will have either Json or like a big payloads or multiple to have for just testing purpose I'm
- 86:00 - 86:30 using this one so yeah this is the message I want to publish publish and this is like entire payload I want to publish here I am giving message hiding as one triple zero tone because [Music] here previously I was sending message ID see this one message ID I don't want a
- 86:30 - 87:00 default message ID that I've been generated so what I'm trying to do and I have my like in code we are trying to generate message like we are trying to send message ID and then the message group for a standard view we don't need it but this is a period which I want to send [Music] here I can see this is the payload which I'm
- 87:00 - 87:30 trying to send okay it has been published you can check in here what is it admin API before but this is not everything from you which I created like sorry I mean if you okay yeah this
- 87:30 - 88:00 we already have in this refresh this one yeah is it consumed I got um let me put somewhere subscriber is there yeah I do one thing
- 88:00 - 88:30 I will stop this one uh I mean you saw it like there is an active active listener to this message to this Cube admin API before so once the message has been pushed here the subscriber immediately consumed it because here in we uh you already have I mean I didn't provided any uh prawn expression so it is actively listening and yeah we received let's see here
- 88:30 - 89:00 like this other test message how do I just start this one more subscribers okay you save this one
- 89:00 - 89:30 [Music] it is published [Music] subscribe
- 89:30 - 90:00 okay I'm getting interested foreign
- 90:00 - 90:30 let me just complete this flow this is a subscribers
- 90:30 - 91:00 [Music] foreign [Music] [Music]
- 91:00 - 91:30 [Music] messages I mean we should be able to publish to the same queue also think somewhere and yes something yeah we have one message okay
- 91:30 - 92:00 [Music] that's cool messages browse hello hello yeah purging messages can help uh
- 92:00 - 92:30 maybe you can just Purge message sent right yeah yeah sure so this is a message ID which I try to push correct yeah if uh if we provide any ID it will but if we don't provide it will automatically generate its own ID search messages [Music]
- 92:30 - 93:00 foreign [Music]
- 93:00 - 93:30 [Music] I'll just change this to perfect and then it would be immediate
- 93:30 - 94:00 [Music] I just don't modify everything of this I'll just talk well when it reaches here and the subscriber is just another one we have there for me no foreign okay I think I opened this one and I didn't I'll do one we have tests to have some messages
- 94:00 - 94:30 say this one I'll just enable this flow foreign
- 94:30 - 95:00 okay we already have some messages in
- 95:00 - 95:30 here so I came to me here and I just want to show you some attributes uh yeah we can see I was saying right from subscribers uh if you want any uh properties that from publisher we should receive we should send them as user properties
- 95:30 - 96:00 um and those properties will be under attributes so if when from subscriber you can see operation as published message this is what I used before so not only I mean here for an example it's an operation but anything else any particular ID transaction idea or anything you want to maintain uh to track the message that has been published from the queue until subscribing it and processing it you can
- 96:00 - 96:30 use uh always use user properties to fetch those details okay now I think we'll get some errors but yeah so what I'm trying to do in here is I'm just trying to send it as XML but because I'm not giving any uh root level element it is throwing at it now it
- 96:30 - 97:00 should go to error handling now but this is of no use because see here we kept uh acknowledged mode as immediate if you want to not acknowledge it if you want to acknowledge it you have to have this token correct access token if it is immediate mode or if it is an auto acknowledged mode we don't get this access token in attributes uh if you see this variable I saved attributes dot
- 97:00 - 97:30 access you can now it will be actually in null it should it should win or anything yeah see if it is a manual mode then uh the technology token will be available and you should be able to uh acknowledge it [Music] yeah there are like a few other messages um like we did a prefet now uh all the messages in queue will be in Flight
- 97:30 - 98:00 online like okay they are already consumed we prefetched it so all those five messages are in local and then that will be uh processed so there are zero messages in here and again uh we'll get some error because this data wave has some syntax level errors and uh yeah if you think this transfer message as an external API for example now you can see right we have all these five messages that has been perfect and we now know
- 98:00 - 98:30 anyway this application will definitely fail so these messages are unnecessarily being processed if we have a circuit breaker in place then uh I mean this is only five messages but if it is like large set of messages in the queue like 1000 2000 something like that then at that time uh the weekend like circuit breaker will stop these messages uh to be fetched actually from the queue and
- 98:30 - 99:00 then uh it will open and like open uh state will be open and no messages will be consumed it will wait for the trip time to develop them in the trip type to be completed uh and then it will change the state to half open and then try with one single message if this process is Success then again it will uh change the state to open and the other messages will be processed and it will try to pull messages from the cube so that is a
- 99:00 - 99:30 reason we can have circuit breaker in place for our applications and just stop this one and then it will throw error yeah so this is how we can use our publish and subscriber connectors uh acknowledge I'll show you acknowledgment this one also I'll change it to manual sorry
- 99:30 - 100:00 manual I'll change this polling one fetch one message one minute we are subscribing to test to correct so now we don't have any messages I'll try to push one or two messages to test queue
- 100:00 - 100:30 and then we'll see how we are getting acknowledgment again it's called divide and change name to testo and this is one message I'll try to push this one
- 100:30 - 101:00 it will be published now so yeah it is published and this is actively listening to that message so that one message uh it got it received and now I'll show you attributes you can see I acknowledgment token this is how it will look like and I saved this acknowledgment token inside this variable and it will start
- 101:00 - 101:30 sck token now ack token is the name which it will be deciding attributes now uh this variable I saved it with the same name sap token and it is stored in a variable now we already know this will give error now it will go to and that that means we don't want to acknowledge this one and like here that's the tone
- 101:30 - 102:00 it's in Flight correct that means it's in the process of being consumed and as we are using manual acknowledgment this message is still in Flight it is not deleted and now we are sending not acknowledgment [Music] then it should come back to engine it will come back to him it is not deleted and next time uh this will again as it is still actively listening it will uh
- 102:00 - 102:30 again come to this flow it will again try to the Subscribe will try to consume it and it will try to process this one in the same way how we did not acknowledge this one if this is a correct syntax it will go till here it will acknowledge it foreign [Music]
- 102:30 - 103:00 [Music] [Music] just [Music]
- 103:00 - 103:30 now I still have this message I'm not pushing any new messages foreign
- 103:30 - 104:00 what is this one
- 104:00 - 104:30 Vietnam
- 104:30 - 105:00 I like to use connect s now if we either
- 105:00 - 105:30 yeah so this is
- 105:30 - 106:00 okay try to use before uh connecting to that particular this access token how will get uh
- 106:00 - 106:30 foreign [Music]
- 106:30 - 107:00 called accounts login okay so uh we just have to pass our uh
- 107:00 - 107:30 any point platform credentials uh username and password then if you hit this uh URL response so I'll just I think I ran this application okay I'll do one thing I'll just try to hit this one so this is the queue ID which I want to
- 107:30 - 108:00 like this this URL is for my local application like whatever I have created uh this listener URL I'm just trying to provide a q name um with the Q name and uh it will be a standard queue which I'm trying to create so this would be some sort of response we should get like once it's successfully created send me this message
- 108:00 - 108:30 and yeah so it is created uh I mean so this is the endpoint which I use like uh whatever Q name that I'm getting I'm just passing uh that Q name you the end point so this is one put message
- 108:30 - 109:00 I think we really and not hearing his voice her voice yes let me check with this yeah if we want uh a dlq to be a scientist we just uh like lost you for a while uh
- 109:00 - 109:30 can you could you repeat like what you are okay can I know like uh did you get a chance to see yeah yeah 30 seconds okay okay yeah so uh we see the success response correct so I'm just going back to another Point platform I just refresh this page and I was just checking if the queue which I have been provided with this name has been created or not and I can see it is created uh I provided only these details encryption Falls uh and
- 109:30 - 110:00 then by default it will deliver a delay and it is a standard queue so that has been created with that for example if I want to create a fee for I just have to provide [Music] this one
- 110:00 - 110:30 thank you it says I'm just trying to refresh this page you can see here that has been created it's just not I just like reference from here and even API
- 110:30 - 111:00 put this letter q 4 should be the key
- 111:00 - 111:30 all right I have some yeah three four it should be looking
- 111:30 - 112:00 different foreign
- 112:00 - 112:30 this is the door that I got to learn there are different endpoint for this one you know it's
- 112:30 - 113:00 that I mean you can see right when we when I didn't get call before false why people Falls
- 113:00 - 113:30 in logically somewhere I might have okay here on my way so what I did I was sending this from the request but in database transform where I'm trying to send this payload to q i I haven't mentioned whether it should have a FIFA or not so that's the reason it is not
- 113:30 - 114:00 creating a FIFA I think I'll do one simple change as this one
- 114:00 - 114:30 foreign [Music]
- 114:30 - 115:00 uh yeah yeah okay just one more I'll close this one
- 115:00 - 115:30 yeah I'm going to deployed oh sorry I shouldn't just same name it's already there we go through now if I check here
- 115:30 - 116:00 free for new it's a favorite so yeah uh this is how like uh in code like it says that uh this these are the end point which I took uh from uh The Exchange only so in order to either to create a queue or to create an exchange uh these are the URLs it's just that for Q it is destination Q's qid whereas for exchange it would be exchanges and exchange ID
- 116:00 - 116:30 those URLs you have to watch out before using this one and yeah I mean uh I think because this is a trial account uh we don't have access for broker API and uh stats API like foreign [Music]
- 116:30 - 117:00 [Music] be able to use them those apis so for non-mule applications which can be able to consume rest apis and they can I mean I think in those scenarios we can use rest apias as well to connect to any point of view
- 117:00 - 117:30 yeah similarly how we when this this procedure is same how we did for admin API in the same way we can do it for stats and brokerage rest API calls and we can achieve like whatever functionality it is we want yeah I'm good this any questions in the recipients okay so we do we have any questions
- 117:30 - 118:00 just enable your mic and you can ask the question directly or or we don't I think we don't have any question so we can move forward okay okay you can uh stop uh stop the screen share I can so I can check it from here we can start the trivia then okay give me a second
- 118:00 - 118:30 thank you for your inside long Thanksgiving yeah you covered um yeah it's today's November Festival Bangalore thing and they still joined the session yeah it was very Interactive
- 118:30 - 119:00 okay I'm sharing the code so we are playing the quiz on kahoot and uh let me share the PIN so please make sure that you haven't won any Watcher in the last 30 days so if you are in first three all and you won The Watcher and last year it is you won't be able to get the Watcher again from the mulesoft