...
- Feature-based dependencies / flags (lack of a better word)
- re-uses / leverages RESTful HTTP approach (favored API re-use)
- we want to give the implementer and service developer the ability to turn features turn on / off, and we do that by knowing the deployments intent - a Service is available if it was in the deployment descriptor (docker-compose)
- we need to spike on how to:
- read/write solution (current preferred approach due to race condition using service registration)
- read the docker-compose (docker-compose config --services) and create a feature flag based off services deployed
- we need to publish (consul KV) those flag statuses and consume those in our services (constantly checking? No, config doesn't change. We want on startup - onetime)
- Above reading/writing of these flags to be used in feature-based dependencies is covered in
Jira Legacy server System JIRA columns key,summary,type,created,updated,due,assignee,reporter,priority,status,resolution serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-3906 - the above avoids the race condition inherent in using the knowledge in Consul available through service registration, however we don't we don't have a solution to the race condition (OLMIS-3906
- using service registration in Consul (would be tricky):
- could use a timeout solution - we don't have a way in spring boot to actually stop serving requests.
- registration could be done very quickly - and so most likely before detection is done, everything is registered.
- auth is constantly re-checking consul for services deployed (however how would we solve for the reference UI / keep a consistent user experience across services detecting what is available)
- however we don't we don't have a solution to the race condition:
- Requisition to Stock Mgmt is a good first step to implement (would spur the discussion about which "features" turn off)
- all stock mgmt fields including reasons for losses and adjustments
- read/write solution (current preferred approach due to race condition using service registration)
...