core.node.subsystems / ArtemisMessagingService / <init>

# <init>

`ArtemisMessagingService(directory: Path, myHostPort: <ERROR CLASS>, defaultExecutor: Executor = RunOnCallerThread)`

This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate with each other using (by default) an Artemis specific protocol, but it supports other protocols like AQMP/1.0 as well.

The current implementation is skeletal and lacks features like security or firewall tunnelling (that is, you must be able to receive TCP connections in order to receive messages). It is good enough for local communication within a fully connected network, trusted network or on localhost.

### Parameters

`directory` - A place where Artemis can stash its message journal and other files.
`myHostPort` - What host and port to bind to for receiving inbound connections.
`defaultExecutor` - This will be used as the default executor to run message handlers on, if no other is specified.