Skip to content

Conversation

@tikr7
Copy link
Contributor

@tikr7 tikr7 commented Nov 27, 2024

@matzew as you requested I wrote a small blog post how we use Knative Eventing =)

@knative-prow knative-prow bot requested review from ReToCode and mmejia02 November 27, 2024 14:36
@knative-prow
Copy link

knative-prow bot commented Nov 27, 2024

Welcome @tikr7! It looks like this is your first PR to knative/docs 🎉

@knative-prow knative-prow bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Nov 27, 2024
@netlify
Copy link

netlify bot commented Nov 27, 2024

Deploy Preview for knative ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit bcef98a
🔍 Latest deploy log https://app.netlify.com/sites/knative/deploys/674743176e90b100087c4fbf
😎 Deploy Preview https://deploy-preview-6167--knative.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@matzew
Copy link
Member

matzew commented Nov 27, 2024

@tikr7 thanks a lot!

Can you please add your blog article to the navigation?

Done in here -> https://github.com/knative/docs/blob/main/blog/config/nav.yml#L51

@@ -0,0 +1,24 @@
## How Conxai uses Knative Eventing to provide AI APIs in the construction industry

Copy link
Member

Choose a reason for hiding this comment

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

I'd add an author, like

Author: NAME, TITLE @ SHOP

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

@tikr7
Copy link
Contributor Author

tikr7 commented Nov 27, 2024

@tikr7 thanks a lot!

Can you please add your blog article to the navigation?

Done in here -> https://github.com/knative/docs/blob/main/blog/config/nav.yml#L51

Done.

If something is wrong, pls do let me know.


First, the customer uploads an image to be blurred via our API, which saves the image on S3. The S3 event is routed to our AWS EventBridge. The TriggerMesh AWSEventBridgeSource automatically configures an Amazon SQS queue and EventBridge Rule to forward the S3 event into that Amazon SQS queue. Because TriggerMesh has been deprecated, we will switch to Knative Serving [IntegrationSource](https://knative.dev/blog/articles/consuming_sqs_data_with_integrationsource/) approach with AWS SQS in the future. Then it passes that event into the Knative Broker which is backed by Amazon MSK - Kafka. Since we heavily rely on S3 key/file names, we wrote our own router service in Golang which modifies the EventType using regex patterns and sends it back to the Knative Broker.

Another Knative Trigger moves it into our transformer which handles preprocessing first. As the next step, the transformer calls the predictor (Nvidia Triton) directly over HTTP. We use the "Collocate transformer and predictor in same pod" [feature](https://kserve.github.io/website/0.13/modelserving/v1beta1/transformer/collocation/) to maximize inference speed and throughput. After receiving model results, the transformer does the postprocessing and finally saves the model results on S3.
Copy link
Member

Choose a reason for hiding this comment

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

Could we have a little sub-header above this blog as well?

Saying something about KServe / AI ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thank you for the feedback. I integrated something about Kserve.

Copy link
Member

@pierDipi pierDipi 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 sharing your adoption story @tikr7 !

In the future, I would love to know more about your router server to see if Knative could provide a generalized version of it and, at the same time, remove that from your plate.

A very small comment/suggestion


## Our blurring product step by step

First, the customer uploads an image to be blurred via our API, which saves the image on S3. The S3 event is routed to our AWS EventBridge. The TriggerMesh AWSEventBridgeSource automatically configures an Amazon SQS queue and EventBridge Rule to forward the S3 event into that Amazon SQS queue. Because TriggerMesh has been deprecated, we will switch to Knative Serving [IntegrationSource](https://knative.dev/blog/articles/consuming_sqs_data_with_integrationsource/) approach with AWS SQS in the future. Then it passes that event into the Knative Broker which is backed by Amazon MSK - Kafka. Since we heavily rely on S3 key/file names, we wrote our own router service in Golang which modifies the EventType using regex patterns and sends it back to the Knative Broker.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
First, the customer uploads an image to be blurred via our API, which saves the image on S3. The S3 event is routed to our AWS EventBridge. The TriggerMesh AWSEventBridgeSource automatically configures an Amazon SQS queue and EventBridge Rule to forward the S3 event into that Amazon SQS queue. Because TriggerMesh has been deprecated, we will switch to Knative Serving [IntegrationSource](https://knative.dev/blog/articles/consuming_sqs_data_with_integrationsource/) approach with AWS SQS in the future. Then it passes that event into the Knative Broker which is backed by Amazon MSK - Kafka. Since we heavily rely on S3 key/file names, we wrote our own router service in Golang which modifies the EventType using regex patterns and sends it back to the Knative Broker.
First, the customer uploads an image to be blurred via our API, which saves the image on S3. The S3 event is routed to our AWS EventBridge. The TriggerMesh AWSEventBridgeSource automatically configures an Amazon SQS queue and EventBridge Rule to forward the S3 event into that Amazon SQS queue. Because TriggerMesh has been deprecated, we will switch to Knative Eventing [IntegrationSource](https://knative.dev/blog/articles/consuming_sqs_data_with_integrationsource/) approach with AWS SQS in the future. Then it passes that event into the Knative Broker which is backed by Amazon MSK - Kafka. Since we heavily rely on S3 key/file names, we wrote our own router service in Golang which modifies the EventType using regex patterns and sends it back to the Knative Broker.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@pierDipi nice little detail, thank you! I changed "Serving" to "Eventing" :)

@knative-prow knative-prow bot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Nov 27, 2024
@tikr7
Copy link
Contributor Author

tikr7 commented Nov 27, 2024

Thanks for sharing your adoption story @tikr7 !

In the future, I would love to know more about your router server to see if Knative could provide a generalized version of it and, at the same time, remove that from your plate.

A very small comment/suggestion

We can hop on a call at some point. Let's sync on Slack. I texted you a message.

Copy link
Member

@matzew matzew left a comment

Choose a reason for hiding this comment

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

/lgtm

@knative-prow knative-prow bot added the lgtm Indicates that a PR is ready to be merged. label Nov 27, 2024
@dprotaso
Copy link
Member

/approve

If anyone has further edits feel free to do it in a follow up.

@knative-prow
Copy link

knative-prow bot commented Nov 27, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dprotaso, matzew, tikr7

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@knative-prow knative-prow bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 27, 2024
@knative-prow knative-prow bot merged commit a6d3e5f into knative:main Nov 27, 2024
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants