Process Variable size limitation

What is the limitation on the size and length of Native JSON variable value?

How is this value stored in the database? I viewed schema of the ACT_RU_VARIABLE table, and it contains all these fields
mysql> describe ACT_RU_VARIABLE;
±---------------------±--------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±---------------------±--------------±-----±----±--------±------+
| ID_ | varchar(64) | NO | PRI | NULL | |
| REV_ | int | YES | | NULL | |
| TYPE_ | varchar(255) | NO | | NULL | |
| NAME_ | varchar(255) | NO | | NULL | |
| EXECUTION_ID_ | varchar(64) | YES | MUL | NULL | |
| PROC_INST_ID_ | varchar(64) | YES | MUL | NULL | |
| CASE_EXECUTION_ID_ | varchar(64) | YES | MUL | NULL | |
| CASE_INST_ID_ | varchar(64) | YES | MUL | NULL | |
| TASK_ID_ | varchar(64) | YES | MUL | NULL | |
| BYTEARRAY_ID_ | varchar(64) | YES | MUL | NULL | |
| DOUBLE_ | double | YES | | NULL | |
| LONG_ | bigint | YES | | NULL | |
| TEXT_ | varchar(4000) | YES | | NULL | |
| TEXT2_ | varchar(4000) | YES | | NULL | |
| VAR_SCOPE_ | varchar(64) | NO | MUL | NULL | |
| SEQUENCE_COUNTER_ | bigint | YES | | NULL | |
| IS_CONCURRENT_LOCAL_ | tinyint | YES | | NULL | |
| TENANT_ID_ | varchar(64) | YES | MUL | NULL | |
±---------------------±--------------±-----±----±--------±------+

Camunda 7 deals with the json variables in a different way. It stores the variable as Bytearray in the ACT_GE_BYTEARRAY table and the id of that is stored in ACT_RU_VARIABLE table under the BYTEARRAY_ID field

If you see the schema of this table it stores that as longblob which should is large enough to store huge JSON’s (Size depends on choice of database)

image

1 Like

Hi @Anmol_Gupta, thanks a lot for your reply.

Can you please also tell if Object type for Process Variables work the same way in Camunda 7 : Process Variables | docs.camunda.org

So the Java object is serialized to Byte Array and stored in ACT_GE_BYTEARRAY table?