--
You received this message because you are subscribed to the Google Groups "Iris cloud messaging" group.
To unsubscribe from this group and stop receiving emails from it, send an email to project-iris...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Upon reading everything more carefully, it might be that "clusters" could be most of the organization unit I'm describing.
Aka there are many hosts/nodes making up a "network"; those hosts form a p2p network that supports many logical "clusters"; and those logical "clusters" then host services.
So I could connect my client to the same named service on either the "test" or "prod" cluster. Both clusters could be running on the same set of physical nodes.
I still think of "environment" as something else; something like the collection of cluster settings... For instance if many echo services on different hosts are registered to the same cluster, they aren't necessarily running the same codebase. The "environment" is a logical place where the service could request shared parameters. E.g. what is our default app specific protocol version? What "prefix message" do we prepend to responses when sending replies? What service do we use as a database? How long do we use a timeout before repsonding to the client as "couldn't complete request"?
So a cluster could be supporting a number of different "environments"; and the code connecting to the different nodes that host the cluster and implement the service could be different codebases; but the "environment" settings could inform the code on how to configure itself for a request for that environment. Then environments could be in different "modes" (starting up, shutting down, default, etc).
You've actually already got this concept somewhat with the -dev flag on a node; what if in addition to a node process level setting, "-dev" was also cluster level setting. That way the same iris node could support different clusters in different states....