# Configuration

## Service Name Configuration

In order for `Ecotone` how to route messages you need to register Service Name (Application Name).

* [Symfony Service Name Configuration](/modules/symfony/symfony-ddd-cqrs-event-sourcing.md#servicename)
* [Laravel Service Name Configuration](/modules/laravel/laravel-ddd-cqrs-event-sourcing.md#servicename)
* [Ecotone Lite Service Name Configuration](/modules/ecotone-lite.md#servicename)

## Configure Distribution

To create [AMQP Distributed configuration](/modelling/microservices-php.md) use [Service Context](/messaging/service-application-configuration.md).

### Distributed Message Publisher

This will register **DistributedBus** in Dependency Container, which can be used to send Distributed Messages:

```php
class MessagingConfiguration
{
    #[ServiceContext] 
    public function distributedPublisher()
    {
        return AmqpDistributedBusConfiguration::createPublisher();
    }
}
```

After that **DistributedBus** will become available in Dependency Container, ready to start sending Messages.

### Distributed Message Consumer

This will enable Message Consumer with Service Name, which can consume Distributed Messages:

```php
class MessagingConfiguration
{
    #[ServiceContext] 
    public function distributedConsumer()
    {
        return AmqpDistributedBusConfiguration::createConsumer();
    }
}
```

### Run the consumer

Run consumer for your registered distributed consumer. It will be available under your [Service Name](/modelling/microservices-php.md#configuration)

List:

{% tabs %}
{% tab title="Symfony" %}

```php
bin/console ecotone:list
+--------------------+
| Endpoint Names     |
+--------------------+
| billing            |
+--------------------+
```

{% endtab %}

{% tab title="Laravel" %}

```php
artisan ecotone:list
+--------------------+
| Endpoint Names     |
+--------------------+
| billing            |
+--------------------+
```

{% endtab %}

{% tab title="Lite" %}

```
$consumers = $messagingSystem->list()
```

{% endtab %}
{% endtabs %}

Run it:

{% tabs %}
{% tab title="Symfony" %}

```php
bin/console ecotone:run billing -vvv
```

{% endtab %}

{% tab title="Laravel" %}

```
artisan ecotone:run billing -vvv
```

{% endtab %}

{% tab title="Lite" %}

```php
$messagingSystem->run("billing");
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ecotone.tech/modelling/microservices-php/distributed-bus/amqp-distributed-bus-rabbitmq/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
