Replies: 7 comments 8 replies
-
if nitro will focus on edge and embeded system/product ,beside less framework codes running on limit computing resource, which also should consider common devices protocol link ability、common network and data model by mqtt、websocket etc |
Beta Was this translation helpful? Give feedback.
-
I think some sort of gossip networking might be useful |
Beta Was this translation helpful? Give feedback.
-
Because global networks will be moving to ipv6 with public IPs it potentially means the possibility of doing direct 1:1 networking between services. I think there's the opportunity to do something p2p based that's totally async. |
Beta Was this translation helpful? Give feedback.
-
First, I think we have to get back to a usable state. Finding the minimal path to that. I ripped out a lot of things.
|
Beta Was this translation helpful? Give feedback.
-
OK new usage https://github.com/asim/nitro#usage This is functional but still missing pubsub. It's purely in memory until you switch out the transport. So the next step is figuring that out. I was reading about Google's Snap transport which using memory I/O rather than sockets and its 10x the performance. https://research.google/pubs/pub48630/ I think there's some potential around mmap or single socket for all comes on a machine with some sort of external hand off for multi-host networking. |
Beta Was this translation helpful? Give feedback.
-
I think this is some sort of gateway, or multi-protocol management. I don't have a solution for this. I think there needs to be separation of concerns. Your App itself should only process from a single place. So likely a Nitro Gateway provides these all in one place with the ability to create new listeners. |
Beta Was this translation helpful? Give feedback.
-
Step 1. Socket Transport https://github.com/asim/nitro/tree/master/transport/socket The socket transport defaults to tcp but will accept address in the form of network://address:port e.g udp://localhost:1234 or tcp://localhost:1234 or whatever golang supports for net.Dial and net.Listen. Looking at a picture like so (which is how we model network programming) It's clear at some point, we implement a "network" package that handles p2p. |
Beta Was this translation helpful? Give feedback.
-
As nitro evolves from go-micro and its focus moves beyond microservices, I think its probably a good idea to start to change a few things. One thing we did was remove the top level micro.NewService but I think nitro probably needs a nitro.App returned by nitro.NewApp().
I also think nitro should not rely on protobuf or external code generation, it should be entirely self contained with no dependency beyond Go. If it does introduce any code generation it should be defined by nitro itself as
go generate
commands.Beta Was this translation helpful? Give feedback.
All reactions