I'd like to announce Nebula - an alternative to the Horizon service that uses Dgraph as the data store instead of Postgres.
Most applications built on Stellar need a data store like Horizon to ask meaningful questions about the state of the Stellar network and its assets, accounts and transaction history without having to resort to querying Stellar Core's database directly. And for most applications, the query endpoints of Horizon is more than enough.
However, some applications (like the one we're building at Datalove require a richer querying experience that would be too cumbersome for Horizon to offer. Questions like "how has the liquidity of this asset changed over the last 1000 ledgers" or "what payments to account X of amounts greater than 100 XLM included this MEMO_HASH" or "what's the PageRank of all trustlines for asset code Y" require either fetching a lot of data in advance and performing some post-processing, or hosting your own Horizon instance and pushing the limits of your SQL knowledge (and even then, the more JOINs you perform, the more expensive the query gets).
Instead, we chose to rewrite the ingestion portion of Horizon in Elixir and store the data in Dgraph, a distributed graph database. Dgraph leverages a query language called GraphQL+-, directly inspired by GraphQL, but tailored for graph applications. Using Dgraph not only gives us the freedom to scale our database from a single instance to an entire cluster pretty easily, but also provides us a query experience rich enough to ask really big questions about the network as a whole.
The codebase is still in the early stages (as a number of the required dependencies aren't yet complete and I'm having to patch and update them one-by-one), but it should be useable and Docker-deployable by the 15th! You can keep track of our progress here: github link
Thanks!