The value proposition of Hypermedia

REST is a well-defined architectural style, and despite many misuses of the term towards general Web APIs, can be a very powerful tool. One of the constraints of a REST architecture is HATEOAS, which describes the use of Hypermedia as … Continue reading 

Posted in Architecture, REST | 12 Comments

Cassandra Query Patterns: Not using the “in” query for multiple partitions.

So lets say you’re doing you’re best to data model all around one partition. You’ve done your homework and all you queries look like this: SELECT * FROM my_keyspace.users where id = 1 Over time as features are added however, … Continue reading 

Posted in Cassandra | 1 Comment

Cassandra Auth: Never use the cassandra user in production!

Normal best practice for security with applications is never to use the default admin user. In Sql Server this is manifested by the recommendation not to use the “sa” user. Likewise in Cassandra the default Cassandra user has full rights … Continue reading 

Posted in Cassandra | Tagged | Leave a comment

Container Usage Guidelines

Over the years, I’ve used and abused IoC containers. While the different tools have come and gone, I’ve settled on a set of guidelines on using containers effectively. As a big fan of the Framework Design Guidelines book and its … Continue reading 

Posted in Architecture, Dependency Injection | 45 Comments

Tackling cross-cutting concerns with a mediator pipeline

Originally posted on the Skills Matter website In most of the projects I’ve worked on in the last several years, I’ve put in place a mediator to manage the delivery of messages to handlers. I’ve covered the motivation behind such … Continue reading 

Posted in Architecture, Design, Domain-Driven Design | 17 Comments

Apache Cassandra: Some useful JMX metrics to monitor

This is not a complete list, but is this what I’ve typically had to look out for in the wild. There maybe some selection bias at play since once I’m involved with a cluster it’s not in a good place. … Continue reading 

Posted in Cassandra | Tagged , | Leave a comment

Cassandra C# Driver: Surprising gotcha with SimpleStatement

When helping someone with a Batch using the C# driver and I had a bit of a surprise. I wanted to reuse the CQL and I couldn’t at that point use a Prepare because of a bug, since SimpleStatement has … Continue reading 

Posted in C#, Cassandra | Leave a comment

How transistors work: Illustrated

After fruitless searches in electronics books, electrical engineering textbooks, even physics, trying to find a way to understand transistors (not just where to put one in a circuit), I stumbled upon the answer when I wasn’t looking for it. Chemistry. … Continue reading 

Posted in Uncategorized | 8 Comments

Cassandra: Batch loading without the Batch keyword

Batches in Cassandra are often mistaken as a performance optimization. They can be but only in rare cases. First we need to discuss the different types of batches: Unlogged Batch A good example of a logged batch assuming a partition … Continue reading 

Posted in Cassandra | Tagged | 5 Comments

Announcing Austin Code Camp 2014

It’s that time of year again to hold our annual Austin Code Camp, hosted by the Austin .NET User Group: Austin 2014 Code Camp We’re at a new location this year at New Horizons Computer Learning Center Austin, as our … Continue reading 

Posted in Austin Code Camp | 2 Comments