개발 기간 2023.06 ~ 2023.08
사이트 바로가기 https://alog.acceler.kr/ (🔧업데이트 중)
Team repo https://github.com/orgs/KEA-ACCELER/repositories
Here, the domains(service)'s relationship is shown.
The 'Notification' service receives messages from other services, stores them in the ScyllaDB database, and delivers notifications upon request from the front end, allowing users to receive various events and updates from applications in real time.
- Messages are sent to the 'Notification' service from other services using OpenFeign.
- The received messages are stored in ScyllaDB to be retrieved and delivered later.
- If a notification message is required by the front end, a request is sent to the service endpoint.
- The 'Notification' service responds to the request by retrieving the stored messages from ScyllaDB.
The 'Notification' service provides the following main endpoints:
- POST
/api/noti
: Receives messages from other services and stores them in ScyllaDB. - GET
/api/noti
: If a notification message is requested by the front end, the stored messages are returned. - PATCH
/api/noti
: If the notification is confirmed by the front end, it is stored as true.
require (
github.com/gocql/gocql v1.5.2
github.com/gofiber/fiber/v2 v2.48.0
github.com/google/uuid v1.3.0
)
- use docker-compose.yml
docker compose up -d
- Code optimization: Focus on improving response speed by making full use of Fiber's asynchronous processing function.
- Add unit tests: Write unit tests for each function to ensure code stability and reliability.
- Use asynchronous pattern: Make full use of Fiber's asynchronous function to increase response speed through parallel processing.
- Database optimization: Improve database performance through ScyllaDB indexing and query optimization.
The 'Notification' service uses Fiber of Go language to implement message processing and notification message delivery function. Users can receive various notifications in real time, and experience efficient processing through Fiber's lightweight threads and ScyllaDB performance. In the future, we will gather user feedback and continue to develop and maintain the service through updates.