Every now and then I see a proposal go by for something I’ve wanted for years. Today, it’s the Really Simple Database Protocol.
I am not an enterprise developer. I rarely give a damn about scalability beyond five simultaneous users. I’ve argued in the past that developers need to look beyond scalability, and I’ve argued repeatedly that simpler solutions make a lot more sense for a larger group of people than do highly sophisticated but deeply complicated (think Web Services, EJB, etc.) systems that try to solve every problem.
The Really Simple Database Protocol, from my perspective, is close to perfect. It runs over a verbose but trivial protocol, relying on well-known tools (XML-RPC and SQL) to do simple tasks. The relational database on the other end lets me work with large volumes of highly structured data, and it doesn’t matter (outside of SQL details and features) what database is on the other end of the connection. Nor does the database need to know much about the client.
Yes, there are performance issues, especially if you hit such a server with a few thousand SQL queries simultaneously generating large volumes of returned data. Using HTTPS increases the processing cost, while using HTTP leaves authentication data unguarded. Binary files transferred via XML-RPC become extremely verbose.
Sure, hitting your head against this wall will hurt. If those problems affect you, don’t use this. For those of us who just want to connect database A to client B with a minimum of fuss, this is just the duct tape I’ve been looking for.
Is duct-tape okay, or do we need to solve every problem with titanium alloys adhered with high-strength epoxy adhesives applied using precision robotics?