So, hopefully this isn’t something that you’re already very familiar with, but if you are very familiar with monoids from the perspect of math and abstract algebra, then you, like I was, might be unfamiliar with how they could be so useful to a software engineer. In particular, their utility for someone who is working on large amounts of data.

What the heck is a monoid?

For those of you who have taken a course in abstract algebra, you may have heard the term “monoid” when learning group theory.

So, time for some math.

First, we need a set of objects. This can be just about anything, but we need something.