An open API service indexing awesome lists of open source software.

https://github.com/wizarsi/blps-cian

Бизнес логика добавления и поиска объявлений сайта cian.ru
https://github.com/wizarsi/blps-cian

camunda kafka microservices postgresql scheduler spring transactions

Last synced: about 2 months ago
JSON representation

Бизнес логика добавления и поиска объявлений сайта cian.ru

Awesome Lists containing this project

README

          

Над проектом работали:
* [Андрей Васильев](https://github.com/wizarsi)
* [Максим Васильев](https://github.com/bball30)

BMPN диаграмма разработанных бизнес процессов
![img.png](bpmn/img.png)

1 этап:

Была разработана бизнес логика в соответствии BMPN диаграммой

2 этап:

* Управление транзакциями с помощью Spring JTA
* Авторизация Spring Security + JAAS(access + refresh JWT token)

3 этап:

Асинхронный обмен сообщениями между сервисами Apache Kafka + ZooKeeper. В проекте 3 основных сервиса и все общаются по Kafka.
* Geocoder сервис, отправляет запросы к Yandex API для получения координат по адресу. Используются Retryable.
* Mail сервис, служит для уведомления пользователей по их почте. Это происходит при всяких обновлениях в их объвлениях.
* Ad сервис, поиск и добавление объявлений.

Планировщика задач Spring (@Scheduled). Eжедневно сron запускается архивирование объявлений, у которых время жизни достигло 30 дней.

4 этап:

Релизация находится в ветке проекта camunda.

Для управления бизнес-процессом в веб-приложение был встроен BPM-движок Camunda.
Пользовательский интерфейс приложения создан с помощью генератора форм.

Бизнесс процессы добавленные в Camunda:
![auth.png](bpmn/auth.png)
![add_ad.png](bpmn/add_ad.png)
![find_ads.png](bpmn/find_ads.png)
![delete_ad.png](bpmn/delete_ad.png)
![archive_ads.png](bpmn/archive_ads.png)