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.
- 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
- Alik
- Bekbolat