Besides the functionality differences between flow variable and session variable as described in Mulesoft page, are there any significant performances differences to note while using the two?
For my project, using flow and session variables work perfectly fine. Therefore, I need to decide on which to use.
Session variables are constantly serialized and deserialized when messages cross transport boundaries.
But, you're saying that you can use flow or session variables interchangeably in your project so it means you don't have any transport boundary (otherwise you would lose the flow variables).
In that case, both flow and session variables perform the same: they're just properties of the event.
Note that session variables tend to get leaked via HTTP endpoints so be careful with their usage.
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd">
<http:request-config name="HTTP_Request_Configuration" host="localhost" port="8034" doc:name="HTTP Request Configuration"/>
<flow name="understandingvariablesFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/vars" doc:name="HTTP"/>
<set-variable variableName="flv" value="flowVariable exists" doc:name="LocalVariable"/>
<set-session-variable variableName="sessVar" value="sessionVariable exists" doc:name="Session Variable"/>
<flow-ref name="practiceSub_Flow" doc:name="practiceSub_Flow"/>
<flow-ref name="localVarible" doc:name="localVarible"/>
<flow-ref name="practiceAnotherFLow" doc:name="practiceAnotherFLow"/>
<http:request config-ref="HTTP_Request_Configuration" path="/localvar" method="POST" doc:name="HTTP"/>
</flow>
<flow name="localVarible">
<http:listener config-ref="HTTP_Listener_Configuration" path="/localvar" doc:name="HTTP"/>
<logger message="#[flowVars.flv]" level="INFO" doc:name="LocalVarible Value"/>
<logger message="#[sessionVars.sessVar]" level="INFO" doc:name="Session Var"/>
</flow>
</mule>
-------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:secure-property-placeholder="http://www.mulesoft.org/schema/mule/secure-property-placeholder" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/secure-property-placeholder http://www.mulesoft.org/schema/mule/secure-property-placeholder/current/mule-secure-property-placeholder.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd
http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd">
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8034" doc:name="HTTP Listener Configuration"/>
<sub-flow name="practiceSub_Flow">
<logger message="Another flow's sub flowPractice #[flowVars.flv] and #[sessionVars.sessVar]" level="INFO" doc:name="Sub flow"/>
</sub-flow>
<flow name="practiceAnotherFLow">
<logger message="Another xml file flow's flowPractice #[flowVars.flv] and #[sessionVars.sessVar]" level="INFO" doc:name="Main Flow"/>
</flow>
</mule>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.