Hello,<div><br></div><div>I am confused about how the <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">FingerService</font> gets started in the finger/finger.py <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">makeService</font> function. It is never assigned a service parent and it can&#39;t service <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">getUser</font> requests if its <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">startService</font> method isn&#39;t called; you get an <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">AttributeError:</font> &quot;no attribute &#39;users&#39;&quot; the way it works now. Is this a bug?</div>

<div><br></div><div>The most sensible thing, in this case, seems to be setting the <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">FingerService</font> parent to be the <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">MultiService</font> container that all of the interent services are added to in the <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">makeService</font> function<font class="Apple-style-span" face="&#39;courier new&#39;, monospace">. </font><font class="Apple-style-span" face="arial, helvetica, sans-serif">Is that correct?</font></div>

<div><br></div><div>I&#39;m wondering if their are any other strategies people use for starting non-internet services. </div><div>For instance, if instead of reading a file to get to my user db, I might want to start a redis client and read from redis to service a <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">getUser</font> call. </div>

<div>But that means I&#39;d want to make sure the <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">startService</font> call succeeded (the redis connection was made) before one of the internet services tries to use the FingerService (a timing problem that doesn&#39;t exist when just reading a file)...or something. Maybe I&#39;m really just wondering how the twisted application framework handles exceptions that occur for <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">startService</font> calls. Maybe I need something else to handle that kind of thing? </div>

<div><br></div><div>I&#39;m also wondering if it&#39;s ever a good idea to make a extension of <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">ServerFactory</font> (that adapts a <font class="Apple-style-span" face="&#39;courier new&#39;, monospace">Service</font><font class="Apple-style-span" face="arial, helvetica, sans-serif">) that calls </font><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">Service.startService </font><font class="Apple-style-span" face="arial, helvetica, sans-serif">when </font><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">Factory.startServer </font><font class="Apple-style-span" face="arial, helvetica, sans-serif">is called (and </font><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">Service.stopService</font><font class="Apple-style-span" face="arial, helvetica, sans-serif"> when </font><font class="Apple-style-span" face="&#39;courier new&#39;, monospace">Factory.stopFactory</font><font class="Apple-style-span" face="arial, helvetica, sans-serif"> is called)?</font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">And I&#39;m looking for more use cases/projects (beyond the finger tutorial) that really showcase the twisted application framework. Any references would be appreciated!</font></div>

<div><font class="Apple-style-span" face="arial, helvetica, sans-serif"><br></font></div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">Thanks!</font></div><div><font class="Apple-style-span" face="arial, helvetica, sans-serif">-Dorian</font></div>