whatyouhide

whatyouhide

Elixir Core Team

Xandra – Fast, simple, and robust Cassandra driver

Hey all,

earlier today @lexmag and I released the first version of Xandra, a Cassandra driver built natively in Elixir. We’re very excited and we hope you’re gonna enjoy it!

Andrea and Aleksei

Most Liked

lexmag

lexmag

Hi everyone,

Recently we have released new version of the driver that supports clustering.

Right now we use it in all components of the push notification system mentioned in the “The Pursuit of Instant Pushes” article.
Using Xandra resulted in 30% boost in push notification delivery time.

Aleksei and Andrea

whatyouhide

whatyouhide

Elixir Core Team

Quick update: we just released v0.4.0 of the driver, which supports retry strategies to retry failed queries. Exciting times!

Andrea and Aleksei

lexmag

lexmag

Hey!

We have indeed considered existing libraries before writing our own. Best options were CQErl and marina.

As @whatyouhide said, we went with CQErl to have our project moving forward.
Though its performance was far from desired for our use case, error messages that come from internals did not help, its dependency configuration was extremely painful: Git instead of Hex (we even discovered that one the dependencies changes actual Git ref during Makefile execution—what you see is not what you get). In fact, we end up with a fork.
We could (and were considering to) fix all those aforementioned issues, but that amount of work would mean that we are basically writing a new driver. Also it felt that starting from scratch will be faster to get things done.

Marina seems alright (still Git dependencies though). However it lacks some substantial features, batch queries in our case.

The day we switched to Xandra we got minimum 30% performance improvement and were able to simplify the code around error handling.
Since then Xandra received many optimizations (~35% faster decoding, for example), native support for calendar data types, and streaming functionality out of the box.

whatyouhide

whatyouhide

Elixir Core Team

Hey folks,

we released version v0.9.0 of Xandra which adds native support for datetime data types and optimizes decoding even more. If you’re interested you can check out the full CHANGELOG.

lexmag

lexmag

Since the last update we have released few more versions of the driver (v0.7 is the most recent) with great changes:

  • Support for date, time, smallint, and tinyint types
  • Support for user-defined types
  • Support for authentication
  • Important encoding and decoding optimisations (around 35% speedup)

:rocket:

Where Next?

Popular in Libraries Top

New
Qqwy
While not as prevalent as in imperative languages, arrays (collections with efficient random element access) are still very useful in Eli...
New
markmark206
simple_feature_flags is a tiny package that lets you turn features on or off based on which environment (e.g. localhost, staging, product...
New
marcuslankenau
I feel kind of stuck with the absence of a proper xml library for Elixir. Currently I use SweetXML which was ok for me more or less to pa...
New
devonestes
Introducing assertions, the library that helps you write really great test assertions! GitHub: https://github.com/devonestes/assertions ...
New
archan937
It is a well-know topic within the Elixir community: “To mock or not to mock? :)” Every alchemist probably has his / her own opinion con...
New
benlime
LiveMotion enables high performance animations declared on the server and run on the client. As a follow up to my previous thread A libr...
New
mbuhot
EctoJob A transactional job queue built with Ecto, PostgreSQL and GenStage Available on Hex.pm: ecto_job | Hex Docs: API Reference — ec...
New
bryanjos
Hi, I just published version 0.23.0 of Elixirscript. Most of the changes are around JavaScript interop now that Elixirscript uses the ...
New
gabrielpoca
Hello everyone! I want to share with you something that I’m really proud of: https://stillstatic.io/ Still is a static site builder for...
New

Other popular topics Top

Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3268 119930 1237
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1140 51847 244
New
William
I would like to know that is there any online source for learning Phoenix Framework for building E-Commerce Store? Any advantage on build...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
Nvim
Elixir appears to be a superior language to Python. I don’t see any advantage of Python over Elixir. Are there any?
New

Sub Categories:

We're in Beta

About us Mission Statement