Andrushika opened a new issue, #74400:
URL: https://github.com/apache/airflow/issues/74400

   ### Description
   
   `[workers] state_store_backend` lets a deployment keep large task and asset 
state store values in external storage. In a Python task, the task process 
calls the backend. On `set`, it stores the value and writes only a marker like 
`{"__airflow_state_ref__": "<ref>"}` to the metadata DB. On `get`, it reads the 
value back from that ref (`task-sdk/src/airflow/sdk/execution_time/context.py`).
   
   Java and Go tasks do not run this code. They send `SetTaskStateStore` / 
`GetTaskStateStore` to the supervisor, and the supervisor stores and returns 
the value as-is. The Java and Go docs list this as a limitation, and the 
TypeScript SDK in #73618 has the same note.
   
   
   ### Use case/motivation
   
   With a backend configured, a Dag that mixes Python and Java or Go tasks 
behaves like this:
   
   - A Java or Go task reads a key that a Python task wrote, and gets the 
marker dict instead of the value.
   - A Java or Go task writes a large value, and it goes to the metadata DB 
instead of the external storage.
   
   The backend is a Python class, so implementing it again in each SDK looks 
hard. The solution could be like letting the supervisor calls the backend when 
it handles the state store messages. (Like how remote log backend works) 
   
   Then every language SDK gets it without its own code. The backend would run 
in the supervisor process instead of the task process, both on the same worker.
   
   
   ### Related issues
   
   related: #73464, #73420, #73618, #74217
   
   
   ### Are you willing to submit a PR?
   
   - [x] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to