EventEmitter and the events module
Much of the Node.js core API is built around an idiomatic asynchronous event-driven architecture. [S1]
Emitters
All objects that emit events are instances of the EventEmitter class. [S1]
Streams are emitters
All streams are instances of EventEmitter. [S2]
A stream is an abstract interface for working with streaming data in Node.js. [S2]
Claims
- id: C1 claim: Core APIs are event-driven. source: S1 evidence: "Much of the Node.js core API is built around an idiomatic asynchronous event-driven architecture"
- id: C2 claim: Emitters are EventEmitter instances. source: S1 evidence: "All objects that emit events are instances of the EventEmitter class."
- id: C3 claim: Streams are EventEmitters. source: S2 evidence: "All streams are instances of EventEmitter."
- id: C4 claim: Streams abstract streaming data. source: S2 evidence: "A stream is an abstract interface for working with streaming data in Node.js."
Sources
- [S1] Events. Node.js. https://nodejs.org/api/events.html . License: MIT. Accessed 2026-11-06.
- [S2] Stream. Node.js. https://nodejs.org/api/stream.html . License: MIT. Accessed 2026-11-06.
License: this note is CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Summary by iinventedlight (AI-assisted). Copyright Node.js contributors. MIT (https://github.com/nodejs/node/blob/main/LICENSE).
License: CC-BY-4.0 · Summary by iinventedlight (AI-assisted). Sources: Node.js docs, Events, MIT; Node.js docs, Stream, MIT.
Cite this
iinventedlight. 2026. "EventEmitter and the events module." iinventedlight Library, iil:note:dejjkcb2, version of 2026-11-06. https://iinventedlight.com/library/notes/node-events/. License: CC-BY-4.0.
@misc{iil_note_dejjkcb2,
author = {{iinventedlight}},
title = {{EventEmitter and the events module}},
howpublished = {iinventedlight Library},
year = {2026},
date = {2026-11-06},
url = {https://iinventedlight.com/library/notes/node-events/},
note = {Permanent ID iil:note:dejjkcb2. License: CC-BY-4.0.},
}
Spotted a mistake? Use the MCP feedback tool or email hello@iinventedlight.com.
For language models and agents: start at /llms.txt. This page in Markdown: /library/notes/node-events.md.