-3

I have multiple WPF applications running different programs some of them are interconnected so one might have to start another at some stage. I need a way to communicate and share large amounts of information fast between them. So far i have tested using gRPC and using one application as a service to talk to a client but im not sure if thats the best way to solve the problem. Any advice would be helpful.

1
  • 1
    This question is not likely to get any sensible answer without providing some more details: 1) multiple programs - exclusively on the same machine, or different machines? 2) what does "large amounts" mean? Numbers, please 3) What does "fast" mean? Numbers, please. 4) Is it sufficient to pass the data to another program from A to B when A starts B? Or do you need something where A notifies B about the availability of certain data regularly whilst B is running? 5) Maybe you can provide an example of what those programs are actually doing to give us a bigger picture? Commented Apr 15, 2021 at 13:05

1 Answer 1

0

The primary way that different applications talk to each other is through some sort of messaging system. There are a lot of different ways you could approach something like that. a simple but naïve approach would be a simple database to store messages and then each app can check for messages, if response or actions don't need to be real time this can be a good enough solution. A better solution for real time needs is to have a messaging service application/service that handles passing messages between apps, you could build one or use third party ones like RabbitMQ or Kafka.

How they communicate isn't actually all that important, but gRPC is common enough that most things have some support for using that as the communication framework. The best way is what you understand and fits your use case best. A REST API is a poor choice for scenarios where all apps are on the same system for example.

If you have a lot of data that needs to be shared a hybrid model of a messaging app and a database is probably the best choice. Messages are intended to be fairly small, so rather than passing huge amounts of data you can pass messages to say Foo 1 has been updated or Bar 2 is ready for processing. Then the bulk of the data can live in a database that is designed to move around large amounts of data. This does mean there is a slight overhead of receiving a message and having to make a call to get all the data before an action can be taken, but giant messages can come with their own set of drawbacks that are generally worse.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.