Closed justinhynes closed 5 months ago
Based on a conversation in the Open edX Slack, I thought I would add a comment on how I see the events being used once implemented.
These events would be produced by the Credentials IDA. I am hoping to see the certificates functionality extracted from the LMS to Credentials and I (personally) don't want to add any new certificate clutter/features/functionality to the monolith.
Thanks @justinhynes. I'm going to use this ticket (for now) to discuss whether the new events should go on a separate topic or not.
The outdated best practice used to be one event type per topic. We opened https://github.com/openedx/openedx-events/issues/78 to discuss, and ultimately implement the ability to write multiple event types to the same topic for the purpose of ordering, because they were working on a single object.
Here we are proposing additional event types for program certificates where order matters for a given program cert, but probably not against the other certs. Additionally, these events are being produced from a different service, so I think we'd probably want a separate program-cert related topic.
We can see what others think, and then maybe we can add some clarity to our docs on when to reuse and when not to reuse a topic.
Thoughts?
@robrap My thoughts were something along the lines of...
"Well, this is a certificate event and we already have a place for certificate events... so let's send them there" -- admittedly without much more thought beyond that. I thought this would keep configuration simple but unsure of the other implications. For example, should we have a performance concern if one topic potentially has more consumer/producers than others?
My initial thought was to have separate topics because my brain compartmentalizes them easier, I think it is easier in terms of cognitive load and understanding, but dismissed it early. I agree that this is another place where order matters, and agree that the order doesn't matter compared against course certificates.
I am happy to pivot (and already mostly convinced) towards having a dedicated program certificate topic for managing these events.
Thanks @justinhynes.
How does this sound to you?
This sounds absolutely reasonable and I'll plan on having dedicated topics for program certificate events. Thanks for weighing in!
Closing as the events have been implemented (awhile ago).
Hey folks! I'd like to propose some new events related to Program certificate generation and revocation. Program certificates are generated and maintained by the Credentials IDA.
Internally at 2U, we have external services that are interested in knowing when a program certificate is awarded to a learner. We don't have an immediate use case for a revocation event, but It would feel incomplete (at the time of writing this issue) to only add an event for awarding a program cert. This seemed general enough that others in the community may care about these types of events and that it would be useful to have as part of the
openedx-events
ecosystem.I had rejected the idea of trying to reuse the existing
CERTIFICATE_CREATED
andCERTIFICATE_REVOKED
events as the event data today is closely coupled to course certificates. I thought that trying to make the existing event work for both course and program certificates could be potentially confusing, thus having dedicated events for the lifecycle of program certificates made more sense.With this in mind, I propose:
PROGRAM_CERTIFICATE_AWARDED
eventPROGRAM_CERTIFICATE_REVOKED
eventThese new events would be part of the
learning
architecture subdomain but would have their own dedicated topic.Example definition for the
PROGRAM_CERTIFICATE_AWARDED
event:Example definition for the
PROGRAM_CERTIFICATE_REVOKED
event:These events would require two new data classes:
The
UserData
class already exists and would be reused to capture PII and non-PII data about the learner.An example of the event data for a
PROGRAM_CERTIFICATE_AWARDED
event would be:Thanks for any thoughts and considerations on the topic!