It works quite perfectly. When parameters of an EoS method are references (pointer / object / collection) I suppose 4D uses back and forth blobs or json.
I said “quite” above because I’ve noticed 2 limitations:
• with pointers, any parameter can be used ($0, $1, $2, etc) in/out. But one level max is possible, the EoS method is unable to resolve pointer on pointer. For example $1 array of pointers, each item pointing a child array: on server side children arrays are Nil.
• you can send objects or collections as $1, $2, etc. but you can’t get them back modified by server, while a “normal” method can do that. You have to use $0. I hope this limitation is a youthful defect…
Now about performances, if the parameters are huge (big array / object / collection…) you may try to make it a little better using compressed blob as a vehicle, but keep in mind you make the code harder to maintain this way. I’ve used that with an object recently