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

Why Kafka? And how would that work on OpenShift? #4

Open
dudash opened this issue Nov 13, 2018 · 4 comments
Open

Why Kafka? And how would that work on OpenShift? #4

dudash opened this issue Nov 13, 2018 · 4 comments

Comments

@dudash
Copy link
Owner

dudash commented Nov 13, 2018

A question I've gotten informally when discussing this with colleague was "Why use Kafka and how does that run on OpenShift/Kubernetes?"

Specifically, the "Why Kafka" was targeted at other options for microservices to communicate with each other (like REST, gRPC, etc.). This is probably the more important question of the two for this repo.

The "How does it work in K8s/OpenShift?" was looking to understand how a multi-broker with zookeeper would work in a managed container platform like OpenShift.

So I'm starting that discussion here.

@dudash
Copy link
Owner Author

dudash commented Nov 13, 2018

How would it work on OpenShift is straightforward to answer. And I'll punt to someone else's documentation. See the following articles:

  1. https://developers.redhat.com/blog/2018/10/25/welcome-apache-kafka-to-the-kubernetes-era/
  2. https://developers.redhat.com/blog/2018/10/29/how-to-run-kafka-on-openshift-the-enterprise-kubernetes-with-amq-streams/

@dudash
Copy link
Owner Author

dudash commented Nov 13, 2018

For reference the standard Kafka use cases: https://kafka.apache.org/uses

  • Messaging
  • Website Activity Tracking
  • Metrics
  • Log Aggregation
  • Stream Processing
  • Event Sourcing
  • Commit Log

In this case Kafka is only being used for a subset of the communications of the services. So REST/gRPC aren't off the table. We are streaming data from multiple decoupled services into Kafka for the purposes of a search service. It's similar to the discussion on this stackexchange:

Because this is just a demo repo with no actual users or requirements to meet, this seemed like an interesting example to showcase as part of the architecture.

@dudash
Copy link
Owner Author

dudash commented Nov 13, 2018

an alternative (not chosen) for the search service to get access to multiple service's data would be to use a composition pattern like this:
image

dudash pushed a commit that referenced this issue Apr 29, 2019
@dudash dudash pinned this issue Jan 13, 2020
@dudash
Copy link
Owner Author

dudash commented Jan 13, 2020

This might need to be reconsidered now that istio/jaeger should be able to leverage Kafka (envoyproxy/envoy#8188) and we are considering making istio first-class in this demo (#43 )

@dudash dudash unpinned this issue Jan 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant