Skip to content
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

Platform Event Bus #28

Closed
e0d opened this issue Oct 29, 2021 · 8 comments
Closed

Platform Event Bus #28

e0d opened this issue Oct 29, 2021 · 8 comments
Assignees
Labels
event-bus Work related to the Event Bus.

Comments

@e0d
Copy link

e0d commented Oct 29, 2021

Quick links

Abstract

The already accepted OEP-41: Asynchronous Server Event Message Format details the general format and conventions the Open edX platform should use for asynchronous event messaging across services. It also provides background on a set of "Event Messaging Architectural Goals" for the Open edX platform.

The under-review-provisional OEP-52: Event Bus Architecture provides additional details around how the Open edX platform will be enhanced with an event bus technology that enables a reliable way to send events to multiple consumers across services, following the publish-subscribe (pub/sub) messaging pattern.

Ultimately, one could envision that most cross service communication would take advantage of the event bus to provide a loosely-coupled architecture.

This roadmap item is about making the event bus available to the Open edX platform, as well as seeing through some initial use cases in a Production environment.

Approach

2U's Arch-BOM team has created an architectural runway for cross-service communication using an event bus. The team implemented an event for catalog data from Studio to Discovery using an event bus implemented with Apache Kafka. This is a partial implementation of the OEP, which includes links to a variety of provisional decisions documented in ADRs.

The OEP also discusses introducing an abstraction layer that will enable alternative technology options for the event bus for the Open edX community. The Arch-BOM team created some foundations for the abstraction layer, and tCRIL is working on a Redis Stream implementation, and completing the abstraction layer.

Status

Initial use case production ready

This work has been completed. 2U is using the catalog changed event from Studio to Discovery in Production on edx.org.

Next up

Note: The Future epic is doubling as a placeholder for tasks that may move to other epics above as they are created in GitHub.

Event Bus Project in GitHub:

Training and docs

Note: The section may move once we have a proper home page for docs.

@e0d
Copy link
Author

e0d commented Dec 6, 2021

@robrap could you build out the content here a little to make this item more approachable? We'll have a template eventually. I think what David did here is good for now: #27

@jmakowski1123 jmakowski1123 added the needs definition There are gaps in opportunity scope or definition to be addressed before the opportunity can proceed label Dec 28, 2021
@robrap robrap changed the title Platform Message BUS Platform Event Bus Apr 8, 2022
@robrap robrap added the event-bus Work related to the Event Bus. label Jun 9, 2022
@robrap
Copy link

robrap commented Jun 9, 2022

@e0d: I updated the description and I am in process of moving more of the work from Jira to GitHub issues. Let me know if you have any other specific questions you want addressed before removing the "needs definition" label. Thank you.

@robrap
Copy link

robrap commented Jun 22, 2022

@jmakowski1123: Maybe you are the right person to ask about the process for getting the "needs definition" label removed? What are the requirements that need to be met? Is this done? Thanks.

@jmakowski1123 jmakowski1123 removed the needs definition There are gaps in opportunity scope or definition to be addressed before the opportunity can proceed label Jun 29, 2022
@jmakowski1123
Copy link

jmakowski1123 commented Jun 29, 2022

@jmakowski1123: Maybe you are the right person to ask about the process for getting the "needs definition" label removed? What are the requirements that need to be met? Is this done? Thanks.

Thanks @robrap , the details in the abstract and approach look good to me! Would it be possible to share links to the use cases and any other related design/specs here in this ticket as well? (once they are ready)

@robrap
Copy link

robrap commented Nov 15, 2022

Update as of Nov 15, 2022:

  • The Happy Path epic is nearly closed. Going to Production in the coming days. All QA in Stage has passed.
  • The Sad Path epic is also nearly closed. We just need some doc updates.
  • The Production Ready epic is close. Working out details of minimal observability and alerting.

@robrap
Copy link

robrap commented Jan 27, 2023

Changes to main description:

  • Updated language in the "Approach" section to better align with the current status.
  • Updated "Status" subsection "Initial use case production ready" by marking closed and removing all the details.
  • Updated "Status" subsection "Next Steps" to note tCRIL work on Redis and the Abstraction Layer.

@bmtcril: If you could add a link for the Redis work and/or update status on this issue as appropriate, that would be great. Thank you!

@robrap
Copy link

robrap commented May 3, 2023

@jmakowski1123: Maybe this ticket should move past "Backlog" status? :)

@sarina
Copy link
Contributor

sarina commented Jun 4, 2024

Closing as this is marked "Shipped" on the PR board 🎉

@sarina sarina closed this as completed Jun 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
event-bus Work related to the Event Bus.
Projects
Status: Shipped
Development

No branches or pull requests

4 participants