...
Associated JBoss community project: EAT
Knative -
...
Event sources for container registries, pipelines and builds
Summary of idea:
Implement a multiple Knative eventing source for GraphQL subscriptions.
- Create a subscription
- Receive subscription events
- Create CloudEvents from them
- Send those cloudEvents to other Knative resources, using the standard Knative mechanisms
Possible tasks for this project :
sources container registries, pipelines and builds.
- An event source that is able to generate cloud events when a new image is uploaded to a registry
- Another event source that is able to generate cloud events on build success/failure as well as on pipeline success/failure and on individual steps of a pipeline.
Image registry mentioned is DockerHub.
Pipeline and builds are done by Tekton.
Possible tasks for this project :
- Implement the sourcesImplement the source
- Implement unit tests, e2e test
- Implement performance tests
- Write documentation
- Prepare demos
...
- Kubernetes
- Knative
- Containers and tooling (e.g. Docker)GraphQL
- Golang
NOTE: all the skills listed above are big things. We don't expect students to be experts in any of these. However, we expect students to have experimented with these technologies and have experience in majority of them.
Github repo: https://github.com/knative/eventing and https://github.com/knative/eventing-contrib
Contact / potential mentors: Ali Ok (aliok@redhat.com)
Associated JBoss community project: Knative upstream
Knative - Scaling GraphQL Subscriptions on Serverless environments using Knative
Summary of idea:
GraphQL subscriptions work with websockets or some other persistent connection. When a mutation happens in the GraphQL engine, a subscribed client receives the event of that mutation over that persistent connection.
In the current case, the piece of software that sends the subscription events runs all the time.
How about scaling to zero if there are no subscribed clients?
This project will need some level of research in these areas, before the implementation:
...
com)
Associated JBoss community project: Knative upstream
Knative - Alternative Knative Broker Implementation
Summary of idea:
Based on the Knative proposal: Alternative Broker Proposal (you need to join knative-dev user group to see the document)
Current Broker implementation in Knative Eventing is implemented using channels. We would like to have an alternative broker, without using channels, that is using Apache Kafka instead.
Possible tasks for this project :
- Implement the endpoint
- Implement unit tests, e2e test
- Implement performance tests
- Write documentation
- Prepare demos
- Investigate how KEDA could help
- TODO
Required knowledge
- Kubernetes
- Knative
- Containers and tooling (e.g. Docker)
- GraphQL
- WebsocketsApache Kafka
- Golang (must)
NOTE: all the skills listed above are big things. We don't expect students to be experts in any of these. However, we expect students to have experimented with these technologies and have experience in majority of them.
Github repo: https://github.com/knative/eventing and https://github.com/knative/eventing-contrib
Contact / potential mentors: Ali Ok (aliok@redhat.com)
...