Skip to content

mortilele/Scala-Final

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

☁️ Notifications Services ☁️

Description:

Group Project developed during Scala learning

The project is that we have a service that sends raw notifications, another service must process notifications and group them into notification types, then, there is GET request in which need to pull out the notification of a specific user from the notification group.

Tasks:

  • HTTP Server Notification Producer
    • GET messages
    • POST new message
    • POST send message to user
  • There is one producer who periodically sends a lot of raw user notification messages (user.notifications)
    • Include topic partition OffSet
  • There is service, that consumes messages
    • Determine Notification Type, parse Notifications via RegEx
    • Send to Collector
    • Create stream for each topic partition
  • HTTP Server Notifications Service
    • GET /notifications/<user_id>/<notification_type>, get notifications of user filtered notification type
  • If the client sends a request again within 30 seconds, then the data should not just be read again, but return the old data + (new notifications that could appear in the last 30 seconds)
  • App covered by Gatling Tests
  • Collector Actor must reload state from Cassandra

Contributors:

  • Alik
  • Bekbolat