The Wayback Machine - https://web.archive.org/web/20200905045642/https://github.com/ThreeDotsLabs/watermill/issues/112
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

Cross-languages example #112

Open
joeblew99 opened this issue Aug 14, 2019 · 5 comments
Open

Cross-languages example #112

joeblew99 opened this issue Aug 14, 2019 · 5 comments

Comments

@joeblew99
Copy link

@joeblew99 joeblew99 commented Aug 14, 2019

@roblaszczak
The Architectural constructs are really nice.
But if someone has to use python or rust or blah blah for their "MicroService" what options are there ?

GRPC API wrapping Watermill BUS and SQL layers ?
GRPC Gateway wrapping GRPC ?
Other ideas ?

Or OUT OF SCOPE ?

@m110
Copy link
Member

@m110 m110 commented Aug 15, 2019

Hey @joeblew99. Do you mean other microservices communicating with watermill-based applications? If so, it shouldn't be an issue, as the messages are not any special when consumed/produced by watermill (except metadata). You can use any other library to produce messages that will be consumed by watermill and the other way around.

Can you think of some example of this?

@roblaszczak
Copy link
Member

@roblaszczak roblaszczak commented Sep 16, 2019

I hope that examples should be much better now. If something is not clear, please ask :)

https://github.com/ThreeDotsLabs/watermill/tree/master/_examples

@joeblew99
Copy link
Author

@joeblew99 joeblew99 commented Sep 16, 2019

@m110

Hey @joeblew99. Do you mean other microservices communicating with watermill-based applications? If so, it shouldn't be an issue, as the messages are not any special when consumed/produced by watermill (except metadata). You can use any other library to produce messages that will be consumed by watermill and the other way around.

Yes, for example if you code in python or whatever. I was thinking about the idea of using protobufs for all API aspects. Then the transport is independent and so can be used in various ways by developers using different languages.
Of course you could just use grpc gateway and default to a Rest like approach but it can to limiting.

Can you think of some example of this?

Example.
A team and they are building a large system that is composed of many microservices.
The Ml team want to use python.
The CRM team want to use Nodejs.
But as an architect you want a unified SQL and Messaging system that they all use.
And you want those 2 points to do metrics, tracing, etc, so that you have a centralised system for that.

@roblaszczak roblaszczak changed the title usage for non golang developers Cross-languages example Sep 16, 2019
@roblaszczak roblaszczak reopened this Sep 16, 2019
@roblaszczak
Copy link
Member

@roblaszczak roblaszczak commented Sep 16, 2019

@joeblew99 is the title better now?

@joeblew99
Copy link
Author

@joeblew99 joeblew99 commented Nov 19, 2019

@roblaszczak yes thanks :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.