EXAMPLE 2
This example will show the value of cached variables across multiple channels when storing complex objects. We will even cross zone boundaries! They’re also thread safe!
Let’s say we have 3 channels.One that processes people, one that processes cars, one that processes fountain pens.
Rules:
- Every time a Tesla is purchased as celebration the next 3 people processed with the same first name as the Tesla purchaser will receive free Mont Blanc Fountain Pens.
- Every time a Pelican Pen is purchased the next 2 cars purchased wil receive a 10% discount.
Our seed data for our 3 channels will look like this:
CARS
qie.addInboundMessage('{"car-id":,1,"brand":"Mercedes","cost":1000.00,"buyer-first-name":"Glenn"}','');
qie.addInboundMessage('{"car-id":,2,"brand":"Audi","cost":69.00,"buyer-first-name":"Jerry"}','');
qie.addInboundMessage('{"car-id":,3,"brand":"Chevrolet","cost":138.27,"buyer-first-name":"Spencer"}','');
qie.addInboundMessage('{"car-id":,4,"brand":"Toyota","cost":300.00,"buyer-first-name":"Tonya"}','');
qie.addInboundMessage('{"car-id":,5,"brand":"BMW","cost":100.00,"buyer-first-name":"Nathan"}','');
qie.addInboundMessage('{"car-id":,6,"brand":"Tesla","cost":130.00,"buyer-first-name":"Stephen"}','');
qie.addInboundMessage('{"car-id":,7,"brand":"Ford","cost":79.00,"buyer-first-name":"Catyana"}','');
qie.addInboundMessage('{"car-id":,8,"brand":"Audi","cost":69.00,"buyer-first-name":"David"}','');
qie.addInboundMessage('{"car-id":,9,"brand":"Toyota","cost":300.00,"buyer-first-name":"Jason"}','');
qie.addInboundMessage('{"car-id":,10,"brand":"Ford","cost":600.00,"buyer-first-name":"Michael"}','');
qie.addInboundMessage('{"car-id":,11,"brand":"Chevrolet","cost":138.27,"buyer-first-name":"Aaron"}','');
qie.addInboundMessage('{"car-id":,12,"brand":"Toyota","cost":300.00,"buyer-first-name":"Michelle"}','');
qie.addInboundMessage('{"car-id":,13,"brand":"BMW","cost":59.99,"buyer-first-name":"Rudy"}','');
qie.addInboundMessage('{"car-id":,14,"brand":"BMW","cost":59.99,"buyer-first-name":"Aimee"}','');
qie.addInboundMessage('{"car-id":,15,"brand":"Tesla","cost":130.00,"buyer-first-name":"Samuel"}','');
qie.addInboundMessage('{"car-id":,16,"brand":"Mercedes","cost":1000.00,"buyer-first-name":"Dean"}','');
qie.addInboundMessage('{"car-id":,17,"brand":"Chevrolet","cost":138.27,"buyer-first-name":"James"}','');
qie.addInboundMessage('{"car-id":,18,"brand":"Mercedes","cost":1000.00,"buyer-first-name":"Derrick"}','');
qie.addInboundMessage('{"car-id":,19,"brand":"Tesla","cost":130.00,"buyer-first-name":"Robert"}','');
qie.addInboundMessage('{"car-id":,20,"brand":"Toyota","cost":300.00,"buyer-first-name":"Michael"}','');
PENS
qie.addInboundMessage('{"pen-id":,1,"brand":"Mont Blanc","cost":1000.00}','');
qie.addInboundMessage('{"pen-id":,2,"brand":"Parker","cost":69.00}','');
qie.addInboundMessage('{"pen-id":,3,"brand":"Sailor","cost":138.27}','');
qie.addInboundMessage('{"pen-id":,4,"brand":"Pelikan","cost":300.00}','');
qie.addInboundMessage('{"pen-id":,5,"brand":"Sheaffer","cost":100.00}','');
qie.addInboundMessage('{"pen-id":,6,"brand":"Cross","cost":130.00}','');
qie.addInboundMessage('{"pen-id":,7,"brand":"Faber Castell","cost":79.00}','');
qie.addInboundMessage('{"pen-id":,8,"brand":"Parker","cost":69.00}','');
qie.addInboundMessage('{"pen-id":,9,"brand":"Pelikan","cost":300.00}','');
qie.addInboundMessage('{"pen-id":,10,"brand":"Faber Castell","cost":600.00}','');
qie.addInboundMessage('{"pen-id":,11,"brand":"Sailor","cost":138.27}','');
qie.addInboundMessage('{"pen-id":,12,"brand":"Pelikan","cost":300.00}','');
qie.addInboundMessage('{"pen-id":,13,"brand":"Sheaffer","cost":59.99}','');
qie.addInboundMessage('{"pen-id":,14,"brand":"Sheaffer","cost":59.99}','');
qie.addInboundMessage('{"pen-id":,15,"brand":"Cross","cost":130.00}','');
qie.addInboundMessage('{"pen-id":,16,"brand":"Mont Blanc","cost":1000.00}','');
qie.addInboundMessage('{"pen-id":,17,"brand":"Sailor","cost":138.27}','');
qie.addInboundMessage('{"pen-id":,18,"brand":"Mont Blanc","cost":1000.00}','');
qie.addInboundMessage('{"pen-id":,19,"brand":"Cross","cost":130.00}','');
qie.addInboundMessage('{"pen-id":,20,"brand":"Pelikan","cost":300.00}','');