metron-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nickwallen <>
Subject [GitHub] metron issue #740: METRON-1167 Define Session Specific Global Configuration ...
Date Mon, 11 Sep 2017 14:20:46 GMT
Github user nickwallen commented on the issue:
    This is a replay of an offline conversation....  
    > Sorry for the confusion on my part @ottobackwards . I know much of the innards of
Stellar is only documented in the code (if that), so let's level set on that.  
    > A "StellarExecutor" is responsible for running Stellar code for the REPL.  The executor
can maintain additional "Context" that provides resources for the Stellar code that it is
executing.  Each of these resources in the "Context" are called "Capabilities".   For example,
a Zookeeper Client is available as a Capability called "ZOOKEEPER_CLIENT".  There is also
the "GLOBAL_CONFIG" capability that exposes Metron's global configuration to Stellar code.
    > These capabilities, like the GLOBAL_CONFIG, are exposed to Stellar code in the same
way when running either in the REPL or in a topology.  A Stellar function can be written that
fails if the GLOBAL_CONFIG is not available.  It can also be written to use acceptable defaults,
if a GLOBAL_CONFIG does not exist.
    > Previously the only way to create the GLOBAL_CONFIG in the REPL, was to have a Zookeeper
service running with the Metron config deployed and then launch the REPL with `bin/stellar
-z node1:2181".  Without doing that there was no GLOBAL_CONFIG.  Any function that was written
to expect a GLOBAL_CONFIG, was not usable in the REPL, unless you launched and configured
a Zk instance.
    > This PR provides the ability to...
    > (1) Create a GLOBAL_CONFIG manually in the REPL without the need for Zk and 
    > (2) Modify a GLOBAL_CONFIG manually within a single session, without modifying Zk.
    > There really is no such thing as an "incompletely formed" GLOBAL_CONFIG.  The GLOBAL_CONFIG
is just a key/value store.  It contains whatever it contains.  But if there is a missing value
in the GLOBAL_CONFIG that your function needs, then this change only makes it far simpler
to add that missing value to the GLOBAL_CONFIG. 
    > And this is something you would need per your PR #690.  If you expect to run the
REPL disconnected from a Metron cluster, then you need a way to create a GLOBAL_CONFIG without
a Zk instance.


View raw message