azos icon indicating copy to clipboard operation
azos copied to clipboard

[METABASE] Need IaaS resolver contract/module which absolutely all services use to resolve ALL addresses: Azos.Client, TcpSockets, MongoDb, MySql etc.

Open itadapter opened this issue 2 years ago • 3 comments

The design would allow to use the process model WITH or WITHOUT Sky.METABASE. ** Need to see SKY ResolveAddress ** function Proposed:

namespace: `Azos.Apps.Topology`
interface IAddressResolver
{
   string Resolve(net: atom, binding: atom, address: string);// /w/us/ca/sys/h1 -> 10.0.1.23
}

then DB server names may use Sky host names, Uris may use:

http://</w/us/ca/sys/h1>/Home   will parse out between < > in the server name
  or 
http://${{/w/us/ca/sys/h1}}/Home   will parse out between ${{  }} in the server name
  ResolveUri() extension method the searched for ${{..}} and resolves it via IAddressResolver.Resolve(net, binding, address): string

itadapter avatar Sep 23 '21 00:09 itadapter

The benefit would be great: it would allow to de-couple from physical IaaS (such as Amazon), so we would not need to use their DNS or other temporary host names. The configuration would use logical server names only. We would also not need to maintain extra machine.xml files with huge service manifests, instead we can delegate it to Resolver which will do the mapping.

Better yet, the resolver may be able to introspect on the list of available endpoints, instead of us having to declare them in config like we do now.

itadapter avatar Sep 23 '21 00:09 itadapter

Re #567 - Central Service Client Registry

itadapter avatar Sep 23 '21 00:09 itadapter

This will not be created. Such service on its own does not make sense. We should use Metabase instead, which should be refactored into your system

for now, disregard this request and keep your config structure as-is Future path is to use metabase

zhabis avatar Sep 29 '21 17:09 zhabis