> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom operations

> How to override default DLC operations in `DefaultDlcOperationsConfig` or add a new `IDlcOperation` bean to extend the DLC with custom load, unload, or other request handling.

### Customizing default operations

For example, the `LOAD` operation can be overridden to enforce a custom topic processing order.
For an example of this, see [Custom Topic Ordering](/extensions/custom-topic-ordering).

### Adding operations

#### Configuration

```java theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
@Configuration
public class CustomOperationsConfig {
    @Bean
    public IDlcOperation<CustomResponse, CustomRequest> customOperation() {
        return new IDlcOperation<>() {
            @Override
            public String getName() {
                return "CUSTOM";
            }

            @Override
            public CustomResponse process(CustomRequest request) {
                // Custom logic
            }
        };
    }
}
```

Alternatively, annotate the `CustomOperation` class with `@Component` and let Spring manage the bean creation.

#### Custom operation

```java theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
@RequiredArgsConstructor
@Component
public class CustomOperation implements IDlcOperation<CustomResponse, CustomRequest> {

    @Override
    public String getName() {
        return "CUSTOM";
    }

    @Override
    public CustomResponse process(CustomRequest request) {
        // Custom logic
    }
}
```
