CareCall предоставляет:
- Онлайн-консультации (видео/чат) — по всей стране.
- Очные сессии — в арендуемых офисах в крупных городах.
- Гибкое расписание — с синхронизацией с Google Calendar / Outlook.
- Социальную доступность — льготные тарифы для уязвимых групп.
- Клиент — получает поддержку.
- Практикующий специалист — верифицированный психолог/консультант.
- Администратор офиса — управляет кабинетами и ресурсами.
Система построена как набор слабосвязанных микросервисов, выделенных по бизнес-возможностям.
| Сервис | Ответственность |
|---|---|
appointment-service |
Управление записью на консультации, слотами, статусами сессий |
practitioner-service |
Профили, верификация, рабочие часы и специализации специалистов |
facility-service |
Офисы, кабинеты, бронирование ресурсов для очных консультаций |
notification-service |
Асинхронная отправка уведомлений (email, push) |
- Язык: C# 14 / .NET 10
- Фреймворки: ASP.NET Core
- Хранение: PostgreSQL (per-service), Redis (кеширование, rate-limiting)
- Сообщения: RabbitMQ (через MassTransit)
- Observability: OpenTelemetry (tracing, metrics, logs) + Jaeger / Prometheus
- Инфраструктура: Docker, Docker Compose, .NET Aspire (для локальной оркестрации)
- CI/CD: GitHub Actions
- Domain-Driven Design: чёткие bounded contexts, агрегаты, политики валидации в домене.
- Event-Driven Architecture: события как основа для eventual consistency (
AppointmentScheduled,FacilityReserved). - CQRS: разделение команд и запросов внутри сервисов.
- Resilience: Polly (retry, circuit breaker), idempotency keys, dead-letter queues.
- Observability first: сквозная трассировка, контекстные логи, метрики бизнес-процессов.
- Тестирование: юнит-тесты домена, интеграционные тесты с Testcontainers.