In a previous post, I promised I'd explain how to avoid governing service consumers. Now, let me say that not governing consumers is of critical importance because consumers just won't use a service that is complex to get started with (registration processes, design reviews on load requirements, etc.). They will find all sorts of novel explanations for why they can't reuse the service (ones you won't be able to refute easily)... even if reusing it would be the right thing to do.
So, I'm saying you need to avoid governing consumers... without losing control. Impossible you say? Impossible until you take advantage of the fact that perception is reality.
From the perspective of the service provider, you obviously want consumption of your service to be well governed. The key, however, is that you want the perception of the consumer to be that you're not governed... until they want to be.
Here's a great real-world example: There are a number of sites where you can get free storage on the web. It's quick, easy, and with many it's anonymous. But with all of them, if you go through the formal sign-up process you can then get a higher quality of service (QoS) - whether it's more bandwidth or better uptime. So, if it worked the exact same way for service consumers, you would want to allow easy "ungoverned" use and support a higher quality of service if they submit to being governed.
The key with the "ungoverned" consumers is that you never want them to impact the customers that have signed up for the higher quality of service. Some examples of what you want to do without the consumers realizing it:
- Throttle their usage so they can't swamp the system. Amazon S3 didn't do this, and guess what happened?
- Validate their messages so they can't cause the service to fail by passing in bad data.
Notice that both of these can be done without consumers ever knowing about it - a very good thing. When the consumer decides they want to sign up for the "higher quality of service," what you are actually doing is removing some of these checks-and-balances (once you're satisfied they are already compliant).
Interestingly, signing up for "better governance", in reality, results in removing governance checks! Consumers will love that you offer both "ungoverned" and "governed" use models. But it's probably not important for them to realize that "ungoverned" is more heavily governed than "governed".
Perception is reality.