Smart contracts can be implemented using either centralized or decentralized (blockchain) platforms. However, for a large class of applications, neither of these two alternatives on its own can provide adequate scalability, performance, quality of service, security, and trust requirements. We argue that for many applications, hybrid solutions that combine both on and off-blockchain components are more adequate. In this article, we introduce the design and implementation of a novel hybrid smart contract architecture built using the Ethereum blockchain connected to a centralized smart contract management system developed by us. We then compare and evaluate the implementation of an asset tracking service using three different architectures: on-chain, off-chain, and hybrid. We demonstrate that using a hybrid architecture, we can substantially improve performance of applications while retaining security and trust for critical tasks.