Observer

"The observer is placed just like a piston - the direction that it's facing matters. An observer isn't quite omniscient, y'see - it has an arrow on the top that points in the direction of the block that it's observing. That can actually include another observer, so if you set two up pointing at each other then they'll endlessly beep on and off."

- Duncan Geere

An observer is a block that emits a redstone signal when an adjacent block is updated.

Obtaining
An observer requires a pickaxe to be mined. When mined without a pickaxe, it will drop nothing.

Usage
An observer is placed similarly to a piston, and will observe the block that it is placed against. The texture of the detecting side is that of an 'observing' face. As observers can detect the state of other observers, placing two adjacent observers, each watching the other, can make a fast and compact redstone clock.

Behavior
In Java Edition, an observer will detect changes in its target's block ID or data value, or the breaking or placing of a block (i.e. changes in its basic block state, but not its extended/actual block state). This means that changes like the age of crops will be detected, since they are part of the basic block state that is converted to metadata when the world is saved; however, changes such as the shape of a fence will not be detected, since those are part of the extended block state, which is not saved when the world is saved.

In Bedrock Edition, an observer acts as a block update detector, and detects anything that causes a block update in that edition.

Note that what causes a block update and how they propagate is very different between Java Edition and Bedrock Edition. As a result, each can detect some kinds of changes that the other can't. See the table below for a comparison.

When it detects something, the observer emits a redstone pulse of strong power at level 15 for 2 game ticks (1 redstone tick). The pulse can power redstone dust, a redstone comparator, a redstone repeaters, or any mechanism component located at its opposite end.

In the Java Edition, the pulse is emitted with a delay of 1 redstone tick. In Bedrock Edition, it is supposed to be delayed by 1 tick as well, but is actually delayed 2 redstone ticks due to MCPE-15793, a bug causing redstone delays to be incorrect when components are activated by world changes (which, in the case of the observer in MCPE, is the only way it can be activated), as opposed to pure redstone components ticking.

It also counts as a block change/block state change/block update when the observer itself is moved by a piston. When this happens, an observer emits a pulse after being pushed or pulled, but not beforehand.

Observers behave as a transparent block even though they block light. This means they cannot be powered by an external power source, nor power themselves with their own output.

Because observers in Java Edition detect changes in the basic block state, and not block updates, they can detect a wider range of phenomena than a block update detector (BUD) circuit in Java Edition can detect (as some block state changes don't cause block updates). However, they do not detect client-side blockstate changes that do not change the block data value, such as a fence reshaping or redstone dust rerouting. Observers in Bedrock Edition do detect block updates (but not block state changes), and so they detect the exact same things that any other BUD would detect in that edition.

Trivia

 * When moved by a piston, an observer sends a 2 game tick (1 redstone tick) pulse after being moved, which makes it useful for slime block flying machines.
 * The current Observer texture was created because Jeb kept confusing which side was front/back. He said it was inspired by the "rejected texture" created by Tommaso Checchi.