node.js architectural advice on avoiding global state

I am working on a small hobby project, where I would really like some input and advice.

This is my first "real" node project, and I hope it will teach me a lot about node.js development. I am a .net developer by day, and have been for about 15 years professionally. I have had periods of doing Java as well. I have created small node.js projects to be used as micro services.

But this project can no longer be classified as a micro service ;-)

The purpose of the project is to sample some sensor data, and do some reporting. An idea I got from playing around with a PLC at university. I do that by sampling from a PLC, and emitting the data using ZeroMQ. My node.js server then listens for this sensor data, and stores it in a MongoDB.

I expose that data in a REST api. The REST api also exposes resources like batches and other stuff like authentication etc. On top of that I have an AngularJS app, that creates defines the UI.

The one thing that really annoys me, is that I want to globally assign what batch is running. I have a collection of batches, and one of them is the running one. There are a two ways I see to do this, and both illustrate my novice status in the node.js world. All users should be able to see what batch is running, and I want to be able to easily tell from anywhere in the code as well.

1) Set a flag on the object in Mongo. This has a number of problems. The obvious one being performance. I receive sensor data 10 times a second, and I don't want to ask the database every time what batch to save it under.

2) Save the info on the global object. I really don't like this either. I don't like global state in my code.

What is a good pattern for doing something like this? Does my question make any sense?

Thanks in advance

You can make a simple REST call to set the active batch and call it inside the batch when is started up and ready to accept requests. For example:

app.put('/active-batch', function(req, res, next){
    // Make sure req.body is defined
    app.set('active-batch', req.body);
    res.end();
});

Then everywhere in the code you can use:

app.get('active-batch');

The app.set let you save data globally accessible in your app and app.get let you read previously stored data.