Git Product home page Git Product logo

Comments (11)

behoyh avatar behoyh commented on July 24, 2024

Does this include users being able to make deserialization as strict or as flexible as desired?

from dotnet-sdk.

amanbha avatar amanbha commented on July 24, 2024

@behoyh yes, it would use a user provided Serializer/Deserializer so it can do whatever it wants.

from dotnet-sdk.

behoyh avatar behoyh commented on July 24, 2024

I have an idea for how this should work... where do you say would be the best step in the Actor process to plug in the serializer?

from dotnet-sdk.

amanbha avatar amanbha commented on July 24, 2024

@behoyh It would be needed both on the client and service side. On the service side it can be plugged in when registering the Actor. On the client side it can be plugged in while creating a ActorProxy. May be we need to introduce a ActorProxyFactory, user will create a ActorPrpoxyFactory which will take a serializer/deserializer and then use that factory to create ActorProxies.

from dotnet-sdk.

behoyh avatar behoyh commented on July 24, 2024

Very cool. How does the client create the ActorProxy? It sounds like the client might know too much about the request before it is sent.

I was thinking the request could be mapped to the service on a best effort basis based on how stringent the custom serializer/deserializer supplied by the user was.

Perhaps a warning could be emitted following a failed / incomplete mapping and a separate listener can act on that.

from dotnet-sdk.

amanbha avatar amanbha commented on July 24, 2024

Very cool. How does the client create the ActorProxy? It sounds like the client might know too much about the request before it is sent.

I was thinking the request could be mapped to the service on a best effort basis based on how stringent the custom serializer/deserializer supplied by the user was.

Perhaps a warning could be emitted following a failed / incomplete mapping and a separate listener can act on that.

The serializer/deserializer needs to work both for request/response both on client and service side, so we will have to plug them in on both the sides. When you say failed/incomplete warning, is that a compile time or runtime thing?

from dotnet-sdk.

behoyh avatar behoyh commented on July 24, 2024

Oh right, I see it now. Would the serializer be required if there was deserializer specified?

Ideally I would have that as a runtime thing in Prometheus format and allow a separate structured logger to pick it up.

from dotnet-sdk.

amanbha avatar amanbha commented on July 24, 2024

Oh right, I see it now. Would the serializer be required if there was deserializer specified?

Ideally I would have that as a runtime thing in Prometheus format and allow a separate structured logger to pick it up.

Yes both the things will be required.
The flow would be:

  1. Serialize arguments of actor method on Client side and send the request.
  2. On the service side, deserialize the request, get actor method arguments and call method on actor.
  3. Get the return value(or exception) from actor method, serialize it and send it as response to client.
  4. On the client side, get the response, deserialize to return type (or exception) and give it to user code.

from dotnet-sdk.

behoyh avatar behoyh commented on July 24, 2024

Got it. I will aim at implementing this!

from dotnet-sdk.

amanbha avatar amanbha commented on July 24, 2024

Got it. I will aim at implementing this!

Great, thanks, looking forward tot he contribution!

from dotnet-sdk.

vinayada1 avatar vinayada1 commented on July 24, 2024

Covered by other issues related to serialization

from dotnet-sdk.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.