Mule Flow Variable vs Session Variable Performance

Besides the differences in functionality between the stream variable and the session variable, as described on the Mulesoft page, are there significant performance differences when using the two?

For my project, using flow and session variables works fine. So I need to decide what to use for.

+4
source share
2 answers

Session variables are constantly serialized and deserialized when messages cross transport boundaries.

But you say that you can use stream or session variables interchangeably in your project, so that means you don’t have any transport boundary (otherwise you will lose stream variables).

In this case, the flow and session variables do the same thing: they are just event properties.

Note that session variables tend to leak through the HTTP endpoints, so be careful using them.

+3
source
<?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 sub flowPractice #[flowVars.flv] and #[sessionVars.sessVar]" level="INFO" doc:name="Sub flow"/>
    </sub-flow>
    <flow name="practiceAnotherFLow">
        <logger message="Another xml file flow flowPractice #[flowVars.flv] and #[sessionVars.sessVar]" level="INFO" doc:name="Main Flow"/>
    </flow>
</mule>
+1
source

All Articles