This post is part of a series of customer success stories that Chad Arimura is putting together highlighting key customers and how they are using Iron.io to do some pretty big things.
Vextras develops applications that help e-commerce store owners simplify their business processes. Their solutions connect online stores with other great SaaS apps like MailChimp, Highrise, Xero and Mandrill for a seamless transfer of information from one platform to another. In addition, they are developing an entire suite of tools that eliminate manual processes and allow store owners to run their businesses more efficiently.
Vextras operates as a service provider for various e-commerce integrations. We were faced with an unpredictable volume of processing that could happen at any second, on demand, based on our customers minute to minute success. We needed support for queueing up jobs quickly and reliably as they came in, as well as the ability to deal with failed jobs as they happened.
We use Rackspace Cloud as our server infrastructure, load balanced, and built to scale. We have incoming API URL’s for our customers that notify us that a job needs to be taken care of. At this point the relationship with Iron becomes crucial.
We decided to utilize Iron's Rackspace MQ Cluster and Push Queues. This reduces the load on our servers and allows us to simply listen for messages coming off of the queues rather than constantly polling for jobs.
To reduce bandwidth, we save the messages in our local DB and simply pass on an identifier to IronMQ for reference. When IronMQ pushes the message back to us, we use the identifier to pull the job data from our DB and handle it. It may seem like overkill, but it's a great workflow, super light on bandwidth, reliable and scalable. We're definitely glad we architected it this way.
By adding IronMQ, we were able to look at our application on a higher tier and separate the critical processes out of the main loop. Balancing workloads and workflows for an application is a really daunting task when you're not just sending an email on a trigger. We can now monitor the jobs easily and even retry on failure without having to build that into our codebase.
This retry capability is probably the most important feature for us – when a job fails the first time, IronMQ will automatically retry based on count and retry delay settings. This really helped us because our jobs work with external API's and we all know how that goes, you can't count on every request working as planned. Iron.io is a perfect fit for us because of its natural framework support, feature richness, and simplicity!
To see how Vextras can put your store on Autopilot, check out Vextras.com.