Menu

Post image 1
Post image 2
1 / 2
0

The Node.js Patterns I Wish I Knew 3 Years Ago

DEV Community·Muhammad Zulqarnain·27 days ago
#g34xItkq
Reading 0:00
15s threshold

Node.js is amazing for shipping fast. It's also amazing at letting you ship broken things fast. I've built a lot of broken things. Here are the patterns that make Node.js systems not break. Pattern 1: EventEmitter for Internal Pub/Sub import { EventEmitter } from ' events ' ; const orderEvents = new EventEmitter (); async function createOrder ( userId , items ) { const order = await db . orders . create ({ userId , items }); orderEvents . emit ( ' order:created ' , order ); return order ; } orderEvents . on ( ' order:created ' , async ( order ) => { await sendConfirmationEmail ( order ). catch ( err => logger . error ( ' Email failed ' , err )); }); orderEvents . on ( ' order:created ' , async ( order ) => { await logAnalytics ( ' order_created ' , order ). catch ( err => logger . error ( ' Analytics failed ' , err )); }); Enter fullscreen mode Exit fullscreen mode Result: Order creation returns in 50ms. Side effects async. If email fails, order still succeeded.…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.

Read More