Jim Liao, Author at FullStackMastery - Page 2 of 2
  • Home  / 
  • Author's archive:
About the author

Jim Liao

Content Enricher Pattern in RabbitMQ

By Jim Liao / February 3, 2017

The Content Enricher Pattern is a widely used Enterprise Integration Pattern in implementing a data enrichment workflow. A content enricher takes a data from a structured source message (such as JSON,XML,YAML,Protobuf) and produces an enriched message that is sent further down the data processing pipeline. The content enricher also acts as a gateway to an external resource. Typically the content enricher will create the enriched document using data from an external resource. In this video, I go over how to implement the content enricher messaging pattern in RabbitMQ.

Continue Reading >
Share

How to Replace Database Polling with RabbitMQ

By Jim Liao / January 26, 2017

A database is traditionally used to store data, but I have seen developers use database tables as a job queue. The purpose of the job queue is to track which data needs to be processed after it has been inserted into that table. A dedicated process then needs to periodically poll/query the database table for unprocessed data. Depending on the frequency of the polling and the availability of the unprocessed data, this technique can become very inefficient.  Database polling is easy to implement and quick to prototype. Unfortunately as your systems grows, it will soon show its limitations in scalability and efficiency. RabbitMQ is an ideal solution to replace this type of database polling. In this video, I go over the high level design of how to replace database polling with RabbitMQ.

Continue Reading >
Share

Introduction to Jetty Web Server

By Jim Liao / October 25, 2016

This is an introduction to the Jetty Web Server.

Jetty is a Java HTTP (Web) server and Java Servlet container. While Web Servers are usually associated with serving documents to people, Jetty is now often used for machine to machine communications, usually within larger software frameworks.

Continue Reading >
Share

The unexpected forces that will bring down your bug-free system

By Jim Liao / October 14, 2016

So many developers assume that only bugs can cause their production systems to go down. There are other forces that can cause bug-free production systems to become unresponsive or experience an outright crash. There are two types forces that can impact your system, forces that compromise the stability of your system and forces that impact the capacity of your system. Awareness that your production system will eventually experience instability and overcapacity and implementing safeguards through design patterns are the only way to improve the longevity of your production system.

Continue Reading >
Share

Why you should not use RabbitMQ for real-time messaging

By Jim Liao / October 14, 2016

I wrote on how RabbitMQ can improve your architecture and design and in that article I wrote that some projects failed because people used RabbitMQ against its optimal usage. A loyal reader asked me to elaborate on some of the cases that people use it incorrectly. When I first used RabbitMQ, I treated it like a magic bullet that can solve all of our messaging needs, but soon discovered that it was not the case. The following are some of the cases that I regret for using RabbitMQ.

Continue Reading >
Share

How can RabbitMQ improve your software design and architecture?

By Jim Liao / August 14, 2016

I had been searching and testing various messaging systems up until I discovered RabbitMQ, a very unique software that I highly recommend as a subsystem in your software solutions due to the fact that it’s matured and battle-tested. Unfortunately, while RabbitMQ is a robust system with many different uses, I have seen many people used it for the wrong reasons and created systems around RabbitMQ that did not reflect its optimal usage. RabbitMQ is a feature rich and reliable messaging system as long as you know how to use it. This guide will show you the optimal usage of RabbitMQ.

Continue Reading >
Share
Page 2 of 2