...wanted to refer in a paper to a "level-breaker" ... found my use of it was the second Google hit, I'd probably just started using the term without really defining it. So why not define it in a blog on my new Advogato account?
The first hit was in the TV Tropes wiki defining it as An event in the script or an uneven portrayal that wrecks the intended emotional tenor of a scene or an entire piece.. In software architecture, though, it is a pattern in which a well-defined clean layered architecture actually in practice had to be disrupted for, sometimes, good reason.
The URI bar in a browser is level breaker. It shows you the workings. The web architecture says you should be able to just browse in the hypertext document space, following links, but never explicitly aware of the URIs themselves. In fact, you need to be able to check on the URI. To decide whether to trust it. When things go wrong, to see who is to blame.
A TCP/IP socket API which allowed one to see details of the TCP window, or detaiuls of the Ethernet back-off level, would be a level-breaker.
Level breakers often mess things up in theory. A level-breaker which allows a programming language to peek at its own stack might suddenly make it theoretically a very different language. But it might be really useful at times. Especially when things go wrong.
I'll probably think of a bunch of better examples of useful level-breakers when I hit "Post". Slife.
Provenance is a useful level-breaker when a Semantic Web data browser allows you to ask which document produced the fact that you are just reading, and about to base an important decision on.