Network Layers

Where Rama is different from most other typical Tower user cases that we are aware of, is that we wish to use service stacks across layers of the network.

You can read through the 'http service hello' example to see this in effect in a minimal setup. There you can see how there are services on the tcp layer as well as the http layer, and that the Context<State> propagates through them all.

Abstract Example:

%3cluster_transport_tcp               (tcp)cluster_transport_http               (http)firewallfirewalltimeouttimeoutfirewall->timeouttrackertrackertimeout->trackertlstlstracker->tlsauthauthtls->auth  (fork for  each http  request)  configconfigauth->configemulationemulationconfig->emulationproxyproxyemulation->proxytcp_listenertcp_listenertcp_listener->firewall  (fork for  each accepted  tcp conn)  

In rama it is truly Services all the way down.