At work we started dealing with SOA and thinking about ESBs in general. (ESB is an Enterprise Service Bus) Not knowing too much about them up front the natural thing is to at least try to build one.

First off, the intent isn’t to build a competitor to the commercial ones, but rather to get a feel for what the nouns and verbs are in the field. We came up with a decent subset of features and started off.

The thing is, I’m not happy with just a wimpy proof of concept. I want to build a real one. Ok, so it’s not going to be on any company’s dime, but I want to make something big like that.

For fun.

Ok, so I have a strange concept of fun I guess.

At this point I’m thinking about getting a start going and maybe open sourcing it. If nothing else it’ll build me some street cred for the future. So ESBs might not be sexy, but I think they’re a cool design challenge — especially a full featured high performance one.

I’ll write all of this in C# running in .net. I’m contemplating open-sourcing this. I’m on the fence about it though.

Road-map

V1

  • Configuration over coding wherever possible
  • Native production and consumption of web services
  • Consistency checking of all orchestrations (V2?)
  • Built-in message tracing/debugging capabilities
  • Hooks to run it in a distributed environment

V2

  • Authentication and security
  • Governance

V3 – ?

  • Distributed processing of the load (i.e. active-active handling of the messages with multiple ESB servers talking)
  • Reliable messaging / failover