conductor-oss / conductor-oss/conductor

Don't send certain input parameters if their value is null

Open
#578 3 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
32.2k
Forks
1k
Avg merge
2d 5h
Merged PRs (30d)
41

Description

### The feature, motivation and pitch

I'm trying to slim down the data sent between Conductor and microservices my workflow uses. I would like to prevent Conductor from sending certain parameters that don't have a value. It currently sends them with a null value.

### Alternatives

I've considered a JavaScript or possibly even a JQ task right before that removes certain/all keys with null values. I don't like having an extra task associated with every task that needs this since it increases the size of the workflow and adds extra latency to do a relatively simple task.

### Additional context

I am specifically using HTTP Tasks, but I imagine this is beneficial for other task types as well.

The microservices have optional input parameters that come from optional output parameters of a previous microservice/task. Since they don't always exist, there are extra keys in Conductor's request with null values. While it's not a huge deal for a single parameter for an occasional request, if you get enough of these parameters, or make enough requests, the increase in unnecessary data transfer can start to incur material costs, especially with cloud ingress/egress.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how HTTP Tasks construct and send input parameters, then compare that path with the input handling for other task types. Confirm the intended behavior for null-valued optional parameters and define completion as requests omitting the selected null parameters without affecting non-null values.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.