You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Alexandr Porunov <al...@gmail.com> on 2016/10/21 05:08:07 UTC

Does Apache Ignite is suitable for real time notifications in a distributed project?

Hello,

I am developing a messaging system with notifications via WebSockets (When
the user 'A' sends a message to the user 'B' I need to show a notification
for the user 'B' about a new message). Different users are connected to
different servers. I wonder to know if Apache Ignite is suitable for this
kind of situation.
I am on the design stage right now. I think that it have to be like this:
1. User 'A' sends a message to the user 'B'
2. Server which is connected with the user 'A' receives the message.
3. Server which is connected with the user 'A' sends the message to the
Apache Ignite.
4. Apache Ignite somehow understands to which server it has to deliver the
message.
5. Apache Ignite sends the message to the server which is connected with
the user 'B'.
6. Server which is connected with the user 'B' sends a notification to the
user 'B' through the WebSocket.

Maybe I am wrong about the design for real time notifications. Maybe it has
to be done in totally different way. I haven't found the information about
building notifications in the distributed project.

Is it possible to build such a system with Apache Ignite or Apache Ignite
isn't suitable for such purposes?

Sincerely,
Alexandr

Re: Does Apache Ignite is suitable for real time notifications in a distributed project?

Posted by Alexandr Porunov <al...@gmail.com>.
Hello,

Thank you for help!

I will try to create it with Ignite

Sincerely,
Alexandr

On Fri, Oct 21, 2016 at 12:27 PM, Pavel Tupitsyn <pt...@apache.org>
wrote:

> Hi Alexandr,
>
> Ignite is a good fit for your use case. (4) and (5) can be achieved
> via Continuous Query [1] with a remote filter and local listener:
>
> - create an Ignite cache to store messages (use expiration to store
> temporarily)
> - start a continuous query on all servers with a remote filter and local
> listener
> - add messages to cache, include receiver user name
> - remote filter analyses the message and accepts only messages which are
> for the users on the current server
> - local listener delivers the message through WebSocket
>
> Let me know if this helps.
>
> Pavel.
>
> [1] https://apacheignite.readme.io/docs/continuous-queries
>
>
>
> On Fri, Oct 21, 2016 at 9:49 AM, Jörn Franke <jo...@gmail.com> wrote:
>
>> Hi,
>>
>> For me that looks more like something suitable for stomp.js+messaging bus
>> (eg rabbitmq).
>>
>> > On 21 Oct 2016, at 07:08, Alexandr Porunov <al...@gmail.com>
>> wrote:
>> >
>> > Hello,
>> >
>> > I am developing a messaging system with notifications via WebSockets
>> (When the user 'A' sends a message to the user 'B' I need to show a
>> notification for the user 'B' about a new message). Different users are
>> connected to different servers. I wonder to know if Apache Ignite is
>> suitable for this kind of situation.
>> > I am on the design stage right now. I think that it have to be like
>> this:
>> > 1. User 'A' sends a message to the user 'B'
>> > 2. Server which is connected with the user 'A' receives the message.
>> > 3. Server which is connected with the user 'A' sends the message to the
>> Apache Ignite.
>> > 4. Apache Ignite somehow understands to which server it has to deliver
>> the message.
>> > 5. Apache Ignite sends the message to the server which is connected
>> with the user 'B'.
>> > 6. Server which is connected with the user 'B' sends a notification to
>> the user 'B' through the WebSocket.
>> >
>> > Maybe I am wrong about the design for real time notifications. Maybe it
>> has to be done in totally different way. I haven't found the information
>> about building notifications in the distributed project.
>> >
>> > Is it possible to build such a system with Apache Ignite or Apache
>> Ignite isn't suitable for such purposes?
>> >
>> > Sincerely,
>> > Alexandr
>>
>
>

Re: Does Apache Ignite is suitable for real time notifications in a distributed project?

Posted by Pavel Tupitsyn <pt...@apache.org>.
Hi Alexandr,

Ignite is a good fit for your use case. (4) and (5) can be achieved
via Continuous Query [1] with a remote filter and local listener:

- create an Ignite cache to store messages (use expiration to store
temporarily)
- start a continuous query on all servers with a remote filter and local
listener
- add messages to cache, include receiver user name
- remote filter analyses the message and accepts only messages which are
for the users on the current server
- local listener delivers the message through WebSocket

Let me know if this helps.

Pavel.

[1] https://apacheignite.readme.io/docs/continuous-queries



On Fri, Oct 21, 2016 at 9:49 AM, Jörn Franke <jo...@gmail.com> wrote:

> Hi,
>
> For me that looks more like something suitable for stomp.js+messaging bus
> (eg rabbitmq).
>
> > On 21 Oct 2016, at 07:08, Alexandr Porunov <al...@gmail.com>
> wrote:
> >
> > Hello,
> >
> > I am developing a messaging system with notifications via WebSockets
> (When the user 'A' sends a message to the user 'B' I need to show a
> notification for the user 'B' about a new message). Different users are
> connected to different servers. I wonder to know if Apache Ignite is
> suitable for this kind of situation.
> > I am on the design stage right now. I think that it have to be like this:
> > 1. User 'A' sends a message to the user 'B'
> > 2. Server which is connected with the user 'A' receives the message.
> > 3. Server which is connected with the user 'A' sends the message to the
> Apache Ignite.
> > 4. Apache Ignite somehow understands to which server it has to deliver
> the message.
> > 5. Apache Ignite sends the message to the server which is connected with
> the user 'B'.
> > 6. Server which is connected with the user 'B' sends a notification to
> the user 'B' through the WebSocket.
> >
> > Maybe I am wrong about the design for real time notifications. Maybe it
> has to be done in totally different way. I haven't found the information
> about building notifications in the distributed project.
> >
> > Is it possible to build such a system with Apache Ignite or Apache
> Ignite isn't suitable for such purposes?
> >
> > Sincerely,
> > Alexandr
>

Re: Does Apache Ignite is suitable for real time notifications in a distributed project?

Posted by Jörn Franke <jo...@gmail.com>.
Hi,

For me that looks more like something suitable for stomp.js+messaging bus (eg rabbitmq).

> On 21 Oct 2016, at 07:08, Alexandr Porunov <al...@gmail.com> wrote:
> 
> Hello,
> 
> I am developing a messaging system with notifications via WebSockets (When the user 'A' sends a message to the user 'B' I need to show a notification for the user 'B' about a new message). Different users are connected to different servers. I wonder to know if Apache Ignite is suitable for this kind of situation.
> I am on the design stage right now. I think that it have to be like this:
> 1. User 'A' sends a message to the user 'B'
> 2. Server which is connected with the user 'A' receives the message.
> 3. Server which is connected with the user 'A' sends the message to the Apache Ignite.
> 4. Apache Ignite somehow understands to which server it has to deliver the message.
> 5. Apache Ignite sends the message to the server which is connected with the user 'B'.
> 6. Server which is connected with the user 'B' sends a notification to the user 'B' through the WebSocket.
> 
> Maybe I am wrong about the design for real time notifications. Maybe it has to be done in totally different way. I haven't found the information about building notifications in the distributed project.
> 
> Is it possible to build such a system with Apache Ignite or Apache Ignite isn't suitable for such purposes? 
> 
> Sincerely,
> Alexandr