"Data consistency was a critical problem that Alchemy solved for us."
- Corey Caplan, Dolomite CEO and Co-founder
Since end-users’ trade decisions and orders are affected by the latest blockchain transactions, seeing that data is crucial. However, getting consistent real-time data is challenging, even when directly querying an ETH node. When making requests, not all queries are sent to identical copies of the chain and reorganizations can occur. This is problematic if one node sees a transaction as mined, but a different node does not.
Dolomite originally used a free node service but encountered inconsistencies in the data. Their engineers spent weeks building nine or more checks per request. When they detected a reorganization, they would wait for more blocks and check again. This workaround succeeded in verifying the data but added long wait times for end-users. Still, waiting was better than reverting trades and putting orders back on order books. Dolomite asked for help repeatedly in the service’s support channel only to have their questions buried by other customers’ questions.
Over those initial months, Dolomite sunk hundreds of hours into checking infrastructure and detecting bad data. That doesn’t account for the opportunity cost of time they could have spent building Dolomite. On top of that, they lost momentum context switching between product development and blockchain infrastructure troubleshooting.
Dolomite tested Alchemy’s service stringently, defining false-positives as errors due to blockchain re-orgs, fake re-orgs, and inconsistencies between nodes. Over the course of two weeks of running two identical servers, they found that Alchemy had 91% fewer false-positives than their previous infrastructure provider.
Alchemy had 91% fewer false-positives than their previous infrastructure provider.
Not only did Alchemy deliver consistent data, but they were also 270x faster at just 10ms to run and verify. Prior to Alchemy, end-users waited at least 2.7 seconds per request since Dolomite ran at least nine checks that took 300ms each to complete. Now, they follow the latest block much more closely lagging just one behind
By using several Alchemy endpoints for the front end, back end writes, and other parts of the app, Dolomite can now easily extract usage information for various parts of their application. The Alchemy dashboard is super user-friendly and lets Dolomite’s team visualize the volume of queries over time, giving them more insight into how end-users are using Dolomite.