A word of caution here... I'd like to see us start moving away from "internal" APIs even, as much as possible. Moving away from Singletons is no-brainer, but less obvious, is moving things to proper public APIs and SPIs so that frameworks and tooling can extend Geode in interesting ways. SDG certainly has a need in many cases.
By way of example, I am currently working on Pagination, and I keep running into situations where it would be nice if the same (ANTLR) grammar/parser used to parse OQL was an API SDG could use. Essentially, every feature and function of Geode should have an interface (API/SPI) that can be extended (e.g. via plugins) in some way to effect function or behavior. This is the primary driver behind the Open/Closed Principle, which would serve Geode well. $0.02 -j ________________________________ From: Dan Smith <dasm...@vmware.com> Sent: Tuesday, October 20, 2020 11:13 AM To: dev@geode.apache.org <dev@geode.apache.org> Subject: Re: [DISCUSS] ServiceRegistry RFC It might be better to hang things off InternalCache rather than create a new singleton. The cache is already a singleton, but we've been working on removing that by plumbing the cache everywhere. The cache is effectively our context object, and once we've finished removing calls to Cache.getInstance we will have a context object that is not a singleton. As Jens mentioned, the cache already has the concept of CacheServices that can be retrieved using methods similar to what you listened in this RFC - eg InternalCache.getService(Class clazz). Can we reuse/generalize/extend this existing service concept for your case? -Dan ________________________________ From: Jens Deppe <jde...@vmware.com> Sent: Tuesday, October 20, 2020 5:33 AM To: dev@geode.apache.org <dev@geode.apache.org> Subject: Re: [DISCUSS] ServiceRegistry RFC Hi Udo, Is the intention of this to replace (and extend) what we're doing with the traditional service loading mechanism today? i.e. how we're loading everything that extends CacheService (for example HttpService, LuceneService, GeodeRedisService, etc.). Thanks --jens On 10/15/20, 7:25 PM, "Udo Kohlmeyer" <u...@vmware.com> wrote: Hi there Apache Geode Devs. Please find attached an RFC for the introduction of a ServiceRegistry into Apache Geode. https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcwiki.apache.org%2Fconfluence%2Fdisplay%2FGEODE%2FServiceRegistry&data=04%7C01%7Cjblum%40vmware.com%7C3ee62dcb9d034f24526c08d87523f40c%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637388144568538631%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=eTRFhI0BECYgeUeimL1tKPI88vuI0SQ4LWWN4ZUWGb8%3D&reserved=0 Please add all comments to the RFC to this email for tracking and discussion. --Udo