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

docs: Add ADR for depending on multiple event bus implementations #227

Merged
merged 8 commits into from
Jun 9, 2023

Conversation

timmc-edx
Copy link
Contributor

@timmc-edx timmc-edx commented May 25, 2023

Issue: #209

Merge checklist:

  • Version bumped
  • Changelog record added
  • Documentation updated (not only docstrings)
  • Commits are squashed

@timmc-edx timmc-edx marked this pull request as ready for review May 25, 2023 21:05
@timmc-edx timmc-edx requested a review from a team as a code owner May 25, 2023 21:05
Copy link
Contributor

@robrap robrap left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together.

There are also some downsides:

- The dependency tree is larger, and is more or less guaranteed to include at least one top-level dependency that each deployer is not using. Not only does each dependency take up bandwidth to download, space on disk, and time spent in upgrading packages, but it can also bring licensing and architecture incompatibilities.
- More concretely, event-bus-kafka depends on confluent-kafka, but that package does not provide binaries compatible with Linux on Apple Silicon. This means that developers on Apple M1 laptops cannot install this package in devstack at all. So as a knock-on effect, event-bus-kafka has had to keep confluent-kafka out of its own in-tree dependencies; deployers wishing to use it have to install and version that package out-of-tree anyhow. While this may eventually be resolved, this does obviate a number of the stated benefits for development and version management for the Kafka users.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought that was something about this as "context" that made it especially painful when we were trying to install the packages optionally? Maybe I am misremembering? If you can recall, maybe calling that out as part of the context for making the decision would be useful. If not, please ignore.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that we discovered the Apple Silicon problem after we had already started installing edx-event-bus-kafka in Ansible, so from the perspective of a somewhat retroactive ADR it's more Consequence than Context.

Copy link
Contributor

@robrap robrap left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added comments to consider, but non-blocking.

@timmc-edx timmc-edx merged commit 5f61927 into main Jun 9, 2023
6 checks passed
@timmc-edx timmc-edx deleted the timmc/adr-deps branch June 9, 2023 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants