It is well known that the integrated optimization of multiple and inter-related decisions in a supply chain can bring benefits to companies. In this spirit, the inventory routing problem focuses on jointly optimizing inventory replenishment and vehicle routing decisions in a distribution context. In practice, the presence of uncertainties often further complicates the problem and can lead to poor performance when inaccurate information is used in the decision-making process. In this talk, we study a stochastic inventory routing problem under the consideration that both the product supply and the customer demands are uncertain. We study the problem following a two-stage decision framework in which the routing plan is determined in the first stage while the delivery quantities, inventory levels, and specific recourse actions are determined in the second stage. In this context, we analyze different recourse mechanisms such as lost sales, backlogging, and an additional source for the product in a capacity reservation contract setting. We introduce a two-stage stochastic programming formulation and a hybrid heuristic solution method for the problem. We provide managerial insights from the results of computational experiments using instances based on a benchmark test set. In particular, we study the response mechanisms of the optimal solutions under different levels of uncertainty and cost configurations. Furthermore, we observe that supply and demand uncertainty have different effects on the value of taking the uncertainty into account. We also study the effect of incorporating a service level.