Comments (10)
Had some internal discussions regarding the new routing key template. For this enhancement, there need to be discussions held at higher level. Based on those discussions, I will add the update.
And the maximum limit for RabbitMQ routing key is 255 characters. We should also consider this.
from eiffel-remrem-semantics.
For a better understanding of this issue I strongly recommend this recording from the last Eiffel Summit, about the new routing key schema: https://www.youtube.com/watch?v=dz5rm13Gw-Y
from eiffel-remrem-semantics.
During a discussion, we concluded that it would be good to have the routing scheme as a configuration. The default routing key schema should reflect the current Sepia description but then make it possible for the user to deploy an instance of REMReM with a legacy routing key schema.
from eiffel-remrem-semantics.
Had a internal discussion with team and decided to start implementation to the new Routingkey adaption.
Our proposal on the property name of legacy routing key schema to maintain backward compatibility is "EnableLegacyRoutingKeyFormat".
Please let us know if you have any other suggested name for this new configuration.
from eiffel-remrem-semantics.
I would prefer that we don't include something called "Legacy" in the REMReM code or config params. I would instead propose that the routing key format could be overridden by a user provided config file, that would provide the mapping from the new proposed routing key format to any custom format. When deploying REMReM in for example Ericsson you could then internally provide such a config file for the "legacy" names and apply it to the service internally.
from eiffel-remrem-semantics.
Agree with @e-backmark-ericsson
from eiffel-remrem-semantics.
Yes we will provide the property in the configuration file But we haven't decided on the configured property name and would like to take your suggestion on the name.
We also have one more query regarding the publish-cli. As cli do not have the configuration file, do we need to introduce new cli option for the same.
from eiffel-remrem-semantics.
I believe the configuration file property names should be inline with the Sepia naming conventions, and its values could then be whatever each organization wants to set. I'm not sure what config file format you will use, but if it would be a simple key-value cfg file it could be called "routing-key-overrides.cfg" and the contents, when deployed in Ericsson, could be something like this:
...
EiffelArtifactCreatedEvent.family = artifact
EiffelArtifactCreatedEvent.type = created
...
EiffelEnvironmentDefinedEvent.family = cm
EiffelEnvironmentDefinedEvent.type = environment
...
EiffelTestCaseTriggered.family = test
EiffelTestCaseTriggered.family = triggered
...
This file is optional, and it should not be part of the repository, but instead stored somewhere in Ericsson together with other Ericsson specific Eiffel code. For documentation purposes you could of course provide an example config file within the repo, but it should not be considered the production file for Ericsson as its content could be different from what Ericsson would need.
Regarding the publish-cli, yes it would probably be good to add a cli option for providing this optional config file.
from eiffel-remrem-semantics.
We are configuring the optional property "semanticsRoutingkeyTypeOverrideFilepath" in publish-service properties file. When we specify the property, the service read the contents present in the file and prepares the routing key with the specified type. The file format will be as below
...
EiffelActivityCanceledEvent.type=canceled
EiffelActivityFinishedEvent.type=finished
EiffelActivityStartedEvent.type=started
...
we will also add the new cli option to read the routing key property file in publish-cli.
Note: The default routing key format will be the newly adapted routing key template to Sepia.
from eiffel-remrem-semantics.
Just adding a comment, for reference: Interesting input to this topic was discussed in the Eiffel Summit 2021, under the heading Event Type Categorization. Providing the possibility to configure the families when deploying REMReM makes it possible to have context/user specific event type categorization.
from eiffel-remrem-semantics.
Related Issues (18)
- Unclear "required" field in TCT template HOT 1
- Move the documentation from gh-pages to master. HOT 4
- Eiffel event generation overrides valid meta.id and time HOT 3
- MsgServer.generateMsg doesn't validate input HOT 3
- Validation fails for link types in IssueVerified event
- Update to Paris edition of protocol
- Schema update process only runs on Windows HOT 2
- Schema update process removes copyright header from files HOT 4
- Autogenerated files shouldn't contain additional patches
- REMReM should handle automatic domainID for semantics HOT 2
- Update to Orizaba edition of protocol HOT 3
- Migrate from Travis CI to GitHub Actions
- Branching strategy in REM HOT 4
- Fix security vulnerabilities in remrem component HOT 1
- No tests defined for events generated from templates
- Define protocol using protobuf? HOT 1
- Need more information from Event class as this doesn't have information about data and links HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eiffel-remrem-semantics.