Observables are a very broad concept, and depending on the context they have a good or a bad name. Both the ES7 Object.observe and RxJS provide (different kind of) observables. Personally I'm happy that the ES7 proposal didn't make it, as the semantics where confusing at least. In MobX observables are really an implementation detail. In hindsight the @state might have been a better name for the decorator than @observable. Observability is a concept that is used internally by MobX to detect when stuff that can be derived from state is not consistent with the state itself anymore. When using MobX you shouldn't be bother anymore with wiring up and tearing down observable listeners. MobX abstracts away from exactly that. But since observables are used internally, MobX can establish very fine grained observers so that it can determine very precisely which derivations are out of sync. But in principle MobX is about reactivity, observability is just the means to get there, not a goal in itself.
An interesting difference with the ES7 proposal is that MobX observers are always triggered synchronously. This simplifies the semantics a lot and makes tracing and debugging easy; if you want to know why a derivation runs, just set a breakpoint and the stack will contain the change that triggered it. In the upcoming version the DevTools will even assist you in doing this.