Azure Mobile Services with AutoMapper

At the recent Xamarin Evolve conference, Paul Batum gave a great talk on Azure Mobile Service in cross-platform business apps, part of which included a piece on how AutoMapper fits in with their overall system: There were sooooo many of … Continue reading 

Posted in AutoMapper | 1 Comment

Comparing processing times of NServiceBus saga patterns

A few weeks ago I gave a talk at NSBCon NYC on scaling NServiceBus, and one of the pieces I highlighted were various saga/processing patterns and how they can affect performance. It was difficult to give real numbers as part … Continue reading 

Posted in NServiceBus | Leave a comment

Domain Modeling Around Deletes or “Using Cassandra as a queue even when you know better”

Understanding Deletes Delete heavy workloads have a number of pretty serious issues when it comes to using a distributed database. Unfortunately one of the most common delete heavy workloads and the most common desired use case for Cassandra is to … Continue reading 

Posted in Cassandra | Tagged | 7 Comments

NServiceBus 5.0 behaviors in action: routing slips

I’ve wrote in the past how routing slips can provide a nice alternative to NServiceBus sagas, using a stateless, upfront approach. In NServiceBus 4.x, it was quite clunky to actually implement them. I had to plug in to two interfaces … Continue reading 

Posted in NServiceBus | 6 Comments

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 | 4 Comments

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 | 46 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 | 21 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