I like to share what I know. That’s why earlier this year, I contributed some code to the Riak function contrib. Since then, I’ve been quietly becoming an independent consultant, starting a business, and working on a big chunk of code. I’m proud to release to the world CorrugatedIron.
More NoSQL for .NET
If you’ve been paying any attention at all (please say you pay attention to me), you’ll have noticed that I like to find fun and interesting ways to use and abuse data. You’ve also noticed that a lot of my interest lies in Riak. When I discovered Riak, there was a very good Ruby library, Ripple, some Java and Erlang libraries, and two .NET libraries that seemed a bit dead in the water.
I saw a lot of promise in Riak – it’s a distributed key/value database and it’s incredibly fault-tolerant. But the downside for many developers, especially developers who work with the Microsoft stack, was that there was no good way to connect to Riak. What that really means is that there was no good way for me to bring Riak to the masses of Microsoft developers and IT pros. Luckily, I had a plan.
I Love It When a Plan Comes Together – Developing Corrugated Iron
Through the Basho folks, I got in touch with OJ Reeves. OJ had started work on a C# library for Riak. Well, he’d started in his head. We emailed back and forth (he has an interesting take on the exchange), and nothing happened. I started a company, he had barbecues and ate shrimp with people named Bruce. In April, we decided to stop slacking off and write some software.
We wrote code quickly and threw it away even faster. We wrote and broke unit tests daily. Interest grew and we decided that we needed a date. We chose July 25th – it’s the first day of OSCON and it was a hard and fast date to get software out the door.
Throughout the development process, OJ and I have joked about strong opinions held loosely. Change is good, challenge is good; having a healthy respect for each other is good. Working with a developer on another continent taught me a lot about evaluating ideas, careful communication, and my own skills as a developer. OK, some of that’s a lie. There were many emails, Skype chats, and pair programming sessions via Webex, but through it all we maintained a respect for each other and a willingness to build and tear down code as many times as necessary to make a feature work.
Where is CorrugatedIron Now?
The whole idea behind CorrugatedIron is to make it easier for .NET developers to use Riak in their applications. SQL Server does many things really well, but there are some things that RDBMSes just aren’t good for. CorrugatedIron opens up choices for .NET developers.
The documentation isn’t where we want it to be and the code isn’t tested as thoroughly as we’d like, but we have working samples. I put some working into building a Session State Provider for ASP.NET (a great use of Riak, by the way) and OJ wrote several sample applications and configuration samples.
What Does It Mean To Me?
I’ve enjoyed working on this project for a few reasons. It’s given me the chance to write code outside of SQL Server. I didn’t realize how rusty I was with C# until I started working on CorrugatedIron. After a few weeks I was right back into it and I’ve been slowly working my way through many of the topics that I missed over the last few years. The best way to learn something is to do it.
The other big reason, for me, is giving something back. I’ve used open source software a lot throughout my career. While I can’t give back directly to many of the projects I’ve worked on, I’m able to give back by writing code and sharing it with the world.
What Next? ###
If you want to get started with CorrugatedIron, or you think you might know a developer who’d like to experiment, grab the source, download some binaries, install the NuGet package, and write some code. This is open source, so if there are missing features, issues you’re running into, or problems you’re having, hit us up on github, fork the repository, and get contributing!