-
Notifications
You must be signed in to change notification settings - Fork 20
add RSS feed endpoint for querying AQ message views #1512
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
MikeNeilson
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall I like it. I do want to make sure that if at all practical we're exposing more standard "queue/topic" semantics.
While this will always be read only, WM staff and core developers will be interacting with the same sources of data and we should make sure things map, preferably into the future and not the past.
Will very likely be making good use of SNS and SQS for queues and topics (of which this is technically the later regardless of Oracle naming).
I'm also currently inclined towards a "queue/topic per concept" vs per-office per-concept. The latter may be an impratical amount of things to deal with when the applications can easily choose to filter and let whatever broker deal.
|
|
||
| private Result<?> retrieveMessages(int offset, int pageSize, Instant since, String office, AqTable name) { | ||
| Timestamp sinceTimestamp = since == null ? null : Timestamp.from(since); | ||
| Table<?> t = table(name("CWMS_20", "AQ$" + office + "_" + name.name() + "_TABLE")).as("t"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
interesting trick, taking advantage of the queue persistence.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah makes it so that we don't have to pull in all the aqapi and jms dependencies and keeps us from being stateful
| @@ -0,0 +1,13 @@ | |||
| <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> | |||
| <channel> | |||
| <title>SWT_TS_STORED</title> | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it make more sense for SWT to be not shown here and this show up and "TS_STORED"?
I think there is a use case for "everything" and long term these wont be from AQJMS queues anyways and it would be one global queue/topic where we filter by parameter.
Then again it is under "channel". Can RSS present more than one "channel" at a time?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, RSS doesn't allow for multiple channels. I was originally thinking we could do a channel per office. If we want to join AQ$SWT_STATUS, AQ$SWT_TS_STORED, and AQ$SWT_REALTIME_OPS into a single channel we could utilize the elements on the items itself to distinguish types. I didn't go that route because there's no description field on categories, where channels have both title and description.
Even with topics externalized, you'd do a single global? I'd think we would still want to separate by at least office and setup authorization per topic, rather than implementing authorization per message.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For sqs/sns the authorization is different, there isn't going to be user level authorization on the queues as we don't have a practical way to expose them with the correct semantics... well, not without unneccassary difficulty. If an user or application needs to allow a message to put entered into the queue the backend service would have the authorization, and the front end... say CDA, would take care of any authorization details.
at a minimum though a hierarchy, at least visually of say "concept/office" may be appropriate, i know for mqtt you get "and everything underneath", need to look at sqs and rabbitmq/activemq to get a better sense.
Alternate considerations:
sincefield.