One thing that I'm taking a really hard look at is server-sent events. This half duplex communication makes a lot of sense when looking at the current examples we have brainstormed for the type of notifications users would receive.
I really don't see webapps having to maintain websockets for simply receiving communications.
Push API which is still in the works but supported by most browsers is another candidate similar to server-sent events but provides additional features for browsers by not needing actually have the webapp loaded at time of receiving events.
Infrastructure
Did some exploration with Kafka and I am very satisfied. Particularly from an engineering standpoint add Kafka support to a Spring Boot microservice is trivial.
Explored a little bit the services amazon provides for pub/sub and the pricing seemed very bad.
Akka seems perfectly suited for server-sent events.
Other thoughts
The name of the game is asynchronous and reactive applications and coding styles
Was surprised by Kafka Streaming, was expecting something more mature.
The notification service will need to be tiny to maintain clean separation of concerns
Take a closer took at play framework due to the fact it is built on top of Akka.
If Kafka is the chosen infrastructure, will need proper R&D of best practices on how to properly scale out brokers and partitions in sane and scalable way.
Communicating to a client
One thing that I'm taking a really hard look at is server-sent events. This half duplex communication makes a lot of sense when looking at the current examples we have brainstormed for the type of notifications users would receive.
I really don't see webapps having to maintain websockets for simply receiving communications.
Push API which is still in the works but supported by most browsers is another candidate similar to server-sent events but provides additional features for browsers by not needing actually have the webapp loaded at time of receiving events.
Infrastructure
Did some exploration with Kafka and I am very satisfied. Particularly from an engineering standpoint add Kafka support to a Spring Boot microservice is trivial.
Explored a little bit the services amazon provides for pub/sub and the pricing seemed very bad.
Akka seems perfectly suited for server-sent events.
Other thoughts
Further Investigation