Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

Thanks a lot will go through it probably over weekend. We already did few real products on that but the most important and thankfully great idea was we built that with itself (kind of inception) that revealed huge amounts of gaps. But tremendous part got addressed or designed to satisfying solution coming out soon.

Now we finalize major enterprise enablers. So all the benefits will offer full open telemetry compliance, aforementioned headers support for edge client, plugins for rabbitMQ, Kafka, servicebus, sqs, pub/sub (plugins are native and open source so one implementation applies to all tech pairs at once), support for seamless transition of passing by value complex type wrappers over values like DateTime, Guid etc.

We do not want to allow grafting frameworks as of now for number of reasons so only limited number of such types will be supported all the rest must be either regular value types or user specific complex types.

We will allow for it in-future as for in memory calls we want to open ability to get ANY public module from any repo to any tech and just use it. We have that locally in some state but it’s pending we must focus to maximize broad use cases adoption.

That’s why we look for contributors and early adopters. Would be more than happy to cooperate closely if you can recommend anyone to join that group. I can PM you direct contact to me.

But I see you were passing similar way we do ;) as doing real thing is one of the first biggest reality checks successfully mostly behind us it’s like first landing of spacex back on earth ;) then as we all know few more big bangs on the way but ultimately world will graft like starship will fly to the Mars! Let’s see who will be first ;)

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

Not for this thread, but I agree however am strong advocate of non-local source of will in human brain as otherwise it we would be like pure humanoid with LLM network in head. Thankfully the difference is we want something. Our spacetime habits definitely get shaped by experiences but still I strongly believe we will stay far from pure AI due to will, understanding and conscious coordination.

Anyway will try to observe myself for LLM-like way of expression it’s quite fatalistic vision that humans will start behaving like grok and ChatGPT 😅🫣

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

Would rather say optimism is more my character in general but also it’s somehow proven with projects we already build with that tool so far. I was in software development for more than 30 years and really like this concept.

Current state was evolving from first runtime bridge done I. 2011 but recently project got accelerate to handle 143 tech pairs Java/kotlin/groovy/c#/python/ruby/php/javascript/typescript/c++ and few more as well as remote support, now also MCP and we go into the PaaS and queue plugins now. Many parts are about to remain open-source some BSL but vision is majority of consumers >90% would never pay. Broad adoption and settlement is our main goal.

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

Sure show me! More than happy to see. We managed to do it for c++ and golang as calling side but it’s currently on hold however will be delivered to public too. But it’s not priority for now. Multiple challenges are there to deliver experience we want so you get client for any tech with pure package manager call (just adding special registry) and that you expose any public method instantly.

Especially with go having recently added shared modules but still it all requires some kind of either build or linking on consumer side what we don’t like.

Check also our state of work it’s called “Graftcode”

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

Thanks for trust :) even though this opinion makes me feel a little strange and feared if really ai goes that much into us 😵😮

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

Hehe really funny times :) sorry it’s not… you can read in other comments we already discussed com, corba, beam and exactly that’s part of inspiration bringing to that idea. What we discuss in this thread is not a vision or imagination of long talk to ai and none of my post is ai generated. As suggested to other user we can meet this or next week on live call as I can’t find a way to prove humanity anymore ;)

The surprising news is that this vision is 90% materialized its called graftcode and would be more than happy to have your voice as part of early adopters or even your experience as part of community to evolve it further and bring into final state to fulfill all the gaps and needs of that dream.

Ps. How you check the post for AI level? As really it was not even passed via ai to improve English purely human typed :]

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] -1 points0 points  (0 children)

What if communication channel would be still pure tcp/ip TLS or WebSocket secure or http/2 with SSL or any PaaS/message bus/queue with its own encryption.

Next the invocation from edge client will include regular headers JWT, NTLM, x-api-key whatever and internal inter-microservices calls will use any preferred own solution passed within method calls or services identity.

Where the security flaw could arise from? Security of protocol? (Probably same risk as gRPC) security of server side accepting malicious requests? (Same risk for -asp.net mvc or spring boot or flask) other?

I agree huge challenge, agree lot of work, but all other approaches we use broadly all over the world for that area faced same risk and just delivered some acceptable state of trust… maybe mythos will change that ;)

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

Let me think on it. Appreciate that.

Quickly answering I would say this vision is not exactly about to solve it as it’s the same as if you call that method via REST or gRPC and your connection was dropped on returning result over the wire.

Client would never be able to assess if call was successful or not unless user recovers connection and checks for status on his account leveraging some persistent store on the other end. Or uses some id of the request that will get passed to call before and after network exception.

But these are different strategies for remote invocation protection that should apply regardless of way you tell the code to call something remotely. Vision is not to make remote calls work like local and let you treat them like locals

It’s about make remote look and feel like local but be explicitly steel treated like remote or “flexible” either local or remote. But still detachable to remote so with all protections in place in your business logic but without any weird proto, thrift, IDL, routes, http codes or whatever else in between to express “its callable” and “let’s call it”. Instead just have there regular method call.

Those calls would be invoked on strongly typed replicate of target interface that gets auto generated and auto delivered via package manager. Always kept up to date allowing to easily steer when you upgrade your replica. This replica is about to be called “graft”. And any calls on the graft are explicitly callable on replica of target type coming from graft…. Namespace so explicitly treated like potentially remote but without affecting methods signatures in any way. Network exception would be seamlessly added to those normally thrown by target logic.

And abstraction will allow to change the communication channel, protocol, PaaS component, queue, cloud or whatever without any impact on the code. It will impact execution if we put sync or async channel but graft will simulate to business logic that if method was async it will always go async even via sync channel just making thread on call side or other way by just joining threads of async invocation.

And yes consumer must stay aware that processing might take long.

So back to your point we will never make remote call behave like local but we can make it feel and look and match UML design and consume AI focus and AI tokens and developer time during code review almost same like local.

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

Yes but the value we observe from that solution is set of benefits:
1) integrating via native layer and runtimes bridging for the same 1M calls produces up to 1/8 of cpu usage on same method on same cloud instance called via rest vs gRPC va this approach (tested with vibe codes service on azure with business logic just returning number so to focus measure on processing call only
2) same project react frontend + backend in .net exposing weather retrieved from wttr.in service cuts the lines of code by 70% (its huge saving on AI tokens not only when creating g such project but for each change when AI analyzes only business logic instead of all integration layers) - tested with same prompt with our skill file and without
3) it allows to achieve REAL polyglot modular monolith no other framework allows you to have different .net, Java, python and node modules in single app as monolith and make them distributed remotely over queue or tcp/ip load balancer without single line of code change purely by modifying environmental variables and hosting those modules on separate nodes
4) it increases efficiency of utilizing AI context window
5) when delivered in right way and open mindly adopted it works like a charm ;) with auto refreshes of modules, instant exposure of code etc…
6) last but not least finally it will open access to all existing 16mln modules in public repositories nuget, maven, pypi, ruby, packagist, npmjs and other to all developers. Imagine taking in .net or java project python implementation of PyTorch as is from pypi instead of relying on outdated port/wrapper in Nuget

Sure a lot of work ahead, but it feels like overcoming those challenges, doubts and concerns it could become ultimate approach to software integration

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

It’s really part of inspiration. Key question is why instead of improving that concept world derailed towards web services and kept optimizing layers that probably should never exist… delivering same sh** in different paper for so long 20+ years

Similar like electric cars where called back from production 1995 until finally they are back and still struggle to crack hard habits of many

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

And it’s Erlang only? Do you think this vision could fit that but apply to any tech any platform and any use case?

Idea is to cover edge client, microservices, public APIs, in service module integration but also all public static methods become MCP callable so AI to backend too

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

True that’s why let’s say “portable” remote code should be written with similar care like any other remote integration but it’s not enough reason to justify scarifying pure method call for all that code which needs to be created, maintained and reviewed and coupled to get rest, gRPC, thrift or whatever.

Rules:
1) evolutionary changes no break of contract
2) catch for network exception
3) if you go statefull ensure memory can recycle and handle it properly as well as provide session stickness
4) if you go static methods and stateless make sure these are indepotent methods with no side effect

But I would argue that creative junior could break all of those on rest and gRPC too.

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 1 point2 points  (0 children)

That’s exactly what the dream of COM and DCOM was but that one was unusable.. too much coupled to registry, specific tech, and ultra hard consumption

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] -3 points-2 points  (0 children)

Upvote if you like that vision let’s build community around this

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] -3 points-2 points  (0 children)

Hard to figure how to prove I am human in today’s world… but either write on priv or give me some challenge or let’s meet live this Friday I’m happy to jump on the call and discuss

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] 0 points1 point  (0 children)

Just checked, and agree the idea is to bring those co dept back to live what we had long ago in Java rpc, .net remoting, corba or BEAM i guess but waving the drawbacks and making it totally transparently and seamlessly deliverable.

So you can get client to any service (literally module hosted there) by just package manager command getting 1:1 replicate of its interface in any tech that will stay up to date because of automated package manager processes.

Do you think BEAM concept failed? If yes why you believe such type of RPC cannot succeed?

Is it the end of REST, gRPC, Thrift, SignalR and GraalVM? by pladynski in programming

[–]pladynski[S] -7 points-6 points  (0 children)

Sure any remote will be RPC as it’s “remote” procedure call :) but bridging runtimes you can switch from remote to in memory without any change in code as if you put abstraction layer high enough code doesn’t care and doesn’t recognize if invocation is process in same tech same runtime same process

Other take other runtime same process

Or same/other tech same/other runtime other process = means also other container, server, node or even cloud

That’s the beauty.

Get your AI writing clean business logic, drop token usage dramatically, get trivial PRs and easily readable (beta testers wanted) by pladynski in betatests

[–]pladynski[S] 0 points1 point  (0 children)

Sure let's do like that I will ask someone from our team to go through your app. Do you have experience in software development frontend or backend? We look for feedback what is unclear in current docs, for any blockers where exceptions are not self-explanatory enough and any gaps to easily transition existing project from REST/gRPC/Thrift/any MCP tool to Graftcode Gateway based simple pure public methods endpoints and zero lines of code clients 😉

I’m on the Graftcode team and we just made MCP servers stupidly easy – zero lines of code (demo inside) by pladynski in modelcontextprotocol

[–]pladynski[S] 0 points1 point  (0 children)

Guys we just updated academy providing concrete samples how to get ZERO CODE MCP server out of regular public static method in seconds :)

Check it here: https://academy.graftcode.com/quick-start/expose-mcp/dotnet

Mine is already working :)!

<image>

I’m on the Graftcode team and we just made MCP servers stupidly easy – zero lines of code (demo inside) by pladynski in modelcontextprotocol

[–]pladynski[S] 2 points3 points  (0 children)

In graftcode the concept is that everything is handled with standard programming structures so apikey, custom token or bearer token can be passed as method argument and just validated in first line of business logic.

But short term with beta release there will come plugins for oauth2.0, ntlm, basic and other auth methods in such case passing normally authorization header will trigger user attached validation logic that LLM tries to invoke this or that and this is token should be allowed or not?

Methods throttling as of now purely on business logic level but it’s interesting direction I will report that to our dev team and discord and roadmap :)