Combining an event-driven architecture and a unified namespace is a powerful mechanism to make smart manufacturing work. The event-driven architecture ensures that important events are handled in real time. At the same time, the unified namespace provides a data and event structure to easily manage and monitor the whole environment.
I’ve been teaching software design and architecture for over twelve years now and applying it for over twelve more. A lot of that work has centered around objects, components and services, all of which are more or less structural elements of software systems. A key notion since the early 70s is that our world consists of objects and that it makes sense to represent them one-to-one in software structures. This has been stressed even more in the past 20 years in domain-driven design. Over time, however, both my own experiences and those of the advocates of domain-driven design have made it clear that the world doesn’t exist solely of objects, but that most of these react to things that happen: events.
As a simple example, let’s consider a customer calling our factory to put in a new order. Looking from an object-oriented perspective, we model the customer, the factory employee answering the phone and the phone itself all as objects. Traditionally, these objects invoke operations on each other. Better said, using the terminology used in Smalltalk, the first real object-oriented programming language, they send messages to each other.

