Building A Component-Based Web UI With Modern JavaScript Frameworks


Most modern front-end JavaScript frameworks provide some sort of support for component based development. This is an incredibly important step in the direction of development for the web. Components provide a way to write small parts with a consistent API that can easily be orchestrated as part of a larger screen, application or system. Component based development isn’t just the future of the web, though. It’s what you should be doing now, in any modern UI / application framework on the web.

Message Brokers, Channels And JavaScript Zombies


Be careful when using a channel-based message broker for browser-based JavaScript applications. It’s easy to get a channel from the broker, but it’s also easy to create memory leaks and JavaScript zombies – object that should have been dead and cleaned up, but come back to bite you later. Global Channels I recently wrote some […]

Promises, Modal Dialogs and Resolve vs Reject


Someone on twitter asked me a question about promises a while back. It was a good question about the general use of reject and resolve to manage a yes/no dialog box. The short answer is always resolve with a status indicator – but I think they wanted more of the “why” than just this one specific answer. To understand why, there is some background to dig in to, first: modal dialog results and reject vs resolve.

Recent Podcast Episodes (August 2015)


If you haven’t heard, I’ve been making the rounds of podcasts lately. It’s been fun to talk with people about everything from parenting and work-life balance, to JavaScript and messaging patterns, to RabbitMQ and beyond.  Check out these recent episodes of podcasts on which I’ve made an appearance, and be sure to check out the […]

Managing Workflow In Long Running JavaScript Processes


In my last post, I talked about how we can dramatically improve our application architectures by making workflow explicit. While that post talked about in-memory applications – stateful code like Backbone.js in browser-based JavaScript apps – the same pattern and principle applies to nearly any form of coordinated workflow, including message based systems.

Airport Baggage Claims, Selective Consumers, and RabbitMQ Anti-Patterns


One of the patterns found in the Enterprise Integration Patterns book covers the idea of a “selective consumer” – that is, a message consumer that uses some criteria to determine which messages it receives and processes, from a given channel (queue). Years ago, when I was first working with queueing in WebsphereMQ, I used this pattern to […]