An IT integration tram followed an API-led connectivity approach to implement an order-fulfillment business process. It created an order processing AP that coordinates stateful interactions with a variety of microservices that validate, create, and fulfill new product orders
Which interaction composition pattern did the integration architect who designed this order processing AP| use?
A Mule application is being designed to do the following:
Step 1: Read a SalesOrder message from a JMS queue, where each SalesOrder consists of a header and a list of SalesOrderLineltems.
Step 2: Insert the SalesOrder header and each SalesOrderLineltem into different tables in an RDBMS.
Step 3: Insert the SalesOrder header and the sum of the prices of all its SalesOrderLineltems into a table In a different RDBMS.
No SalesOrder message can be lost and the consistency of all SalesOrder-related information in both RDBMSs must be ensured at all times.
What design choice (including choice of transactions) and order of steps addresses these requirements?
Option A says 'Perform EACH DB insert in a SEPARATE DB transaction'. In this case if first DB insert is successful and second one fails then first insert won't be rolled back causing inconsistency. This option is ruled out.
Option D says Perform BOTH DB inserts in ONE DB transaction.
Rule of thumb is when one or more DB connections are required we must use XA transaction as local transactions support only one resource. So this option is also ruled out.
Option B acknowledges the before DB processing, so message is removed from the queue. In case of system failure at later point, message can't be retrieved.
Option C is Valid: Though it says 'do not ack JMS message', message will be auto acknowledged at the end of transaction. Here is how we can ensure all components are part of XA transaction: https://docs.mulesoft.com/jms-connector/1.7/jms-transactions
Additional Information about transactions:
XA Transactions - You can use an XA transaction to group together a series of operations from multiple transactional resources, such as JMS, VM or JDBC resources, into a single, very reliable, global transaction.
The XA (eXtended Architecture) standard is an X/Open group standard which specifies the interface between a global transaction manager and local transactional resource managers.
The XA protocol defines a 2-phase commit protocol which can be used to more reliably coordinate and sequence a series of 'all or nothing' operations across multiple servers, even servers of different types
Use JMS ack if
-- Acknowledgment should occur eventually, perhaps asynchronously
-- The performance of the message receipt is paramount
-- The message processing is idempotent
-- For the choreography portion of the SAGA pattern
Use JMS transactions
-- For all other times in the integration you want to perform an atomic unit of work
-- When the unit of work comprises more than the receipt of a single message
-- To simply and unify the programming model (begin/commit/rollback)
A platform architect includes both an API gateway and a service mesh in the architect of a distributed application for communication management.
Which type of communication management does a service mesh typically perform in this architecture?
Organization wants to achieve high availability goal for Mule applications in customer hosted runtime plane. Due to the complexity involved, data cannot be shared among of different instances of same Mule application. What option best suits to this requirement considering high availability is very much critical to the organization?
High availability is about up-time of your application
A) High availability can be achieved only in CloudHub isn't correct statement. It can be achieved in customer hosted runtime planes as well
B) An object store is a facility for storing objects in or across Mule applications. Mule runtime engine (Mule) uses object stores to persist data for eventual retrieval. It can be used for disaster recovery but not for High Availability. Using object store can't guarantee that all instances won't go down at once. So not an appropriate choice.
C) High availability can be achieved by below two models for on-premise MuleSoft implementations.
1) Mule Clustering -- Where multiple Mule servers are available within the same cluster environment and the routing of requests will be done by the load balancer. A cluster is a set of up to eight servers that act as a single deployment target and high-availability processing unit. Application instances in a cluster are aware of each other, share common information, and synchronize statuses. If one server fails, another server takes over processing applications. A cluster can run multiple applications. ( refer left half of the diagram)
In given scenario, it's mentioned that 'data cannot be shared among of different instances'. So this is not a correct choice.
2) Load balanced standalone Mule instances -- The high availability can be achieved even without cluster, with the usage of third party load balancer pointing requests to different Mule servers. This approach does not share or synchronize data between Mule runtimes. Also high availability achieved as load balanced algorithms can be implemented using external load balancer. ( refer right half of the diagram)
A DevOps team has adequate observability of individual system behavior and performance, but it struggles to track the entire lifecycle of each request across different microservices.
Which additional observability approach should this team consider adopting?
Dana
10 days agoFrance
17 days agoLelia
25 days agoJudy
1 month agoShawnee
1 month agoMan
2 months agoMaryanne
2 months agoMarion
2 months agoSina
3 months agoTaryn
3 months agoShayne
3 months agoBarrie
3 months agoRicarda
4 months agoHarley
4 months agoGregoria
4 months agoMan
4 months agoBulah
5 months agoDarnell
5 months agoFiliberto
5 months agoErnie
5 months agoErinn
6 months agoBette
6 months agoAja
6 months agoJettie
6 months agoGrover
7 months agoDulce
7 months agoShad
7 months agoGoldie
7 months agoStevie
7 months agoMariann
7 months agoElsa
9 months agoLeonardo
9 months agoDulce
10 months agoElfrieda
10 months agoPamella
10 months agoMartha
11 months agoChara
12 months agoMerrilee
12 months agoCelestina
1 year agoLynda
1 year agoAlona
1 year agoChauncey
1 year agoTwana
1 year agoThurman
1 year agoBrynn
1 year agoMozell
1 year agoJeanice
1 year agoMaricela
1 year agoBarrie
1 year agoDenna
1 year agoShalon
1 year agoPamella
1 year agoMelissia
1 year agoErnie
1 year agoDierdre
1 year agoJoni
1 year agoCaprice
1 year agoShenika
1 year agoAndra
1 year agoScarlet
1 year agoMozelle
1 year agoHannah
1 year agoLauran
2 years agoCory
2 years agoKenny
2 years agoWilda
2 years agoHelaine
2 years agoLaurel
2 years agoEdelmira
2 years agoAlonzo
2 years agoOmega
2 years agoNakisha
2 years agoTonja
2 years agoLelia
2 years agoLucina
2 years agoDulce
2 years agoBettyann
2 years agoChu
2 years ago