ActiveResource doesn't seem to be suitable for multi-threaded applications because state is stored on the class that multiple threads may want to modify and use at the same time.
Perhaps this could be solved by storing the connection in a thread-local variable. In this way, a new connection could lazily be created for each thread when the ShopifyResource.connection property is accessed, and no locking would be needed in order to concurrently make requests from different threads.
ActiveResource doesn't seem to be suitable for multi-threaded applications because state is stored on the class that multiple threads may want to modify and use at the same time.
Perhaps this could be solved by storing the connection in a thread-local variable. In this way, a new connection could lazily be created for each thread when the ShopifyResource.connection property is accessed, and no locking would be needed in order to concurrently make requests from different threads.