Installing the environment
The code we write in this chapter has real external dependencies that we need to set up before we can start to build our system.
Tip
Be sure to check out the chapter notes at https://github.com/matryer/goblueprints if you get stuck on installing any of the dependencies.
In most cases, services such as mongod
and nsqd
will have to be started before we can run our programs. Since we are writing components of a distributed system, we will have to run each program at the same time, which is as simple as opening many terminal windows.
Introducing NSQ
NSQ is a messaging queue that allows one program to send messages or events to another or to many other programs running either locally on the same machine or on different nodes connected by a network. NSQ guarantees the delivery of each message at least once, which means that it keeps undelivered messages cached until all interested parties have received them. This means that even if we stop our counter
program, we won't miss...