Skip to content
This repository has been archived by the owner on Apr 9, 2024. It is now read-only.

understanding bounded contexts in cbs

Inge Stubdal edited this page Jan 19, 2019 · 2 revisions
  • TODO: ref to Martin Fowler Bounded Context + simplified description

Understanding the project structure

CBS is built using the Domain Driven Design pattern and has been divided into 5 bounded contexts (or projects/modules). Each bounded context is completely isolated from the others, with it's own frontend and backend code. This means that when you work in a specific bounded context, you only need to understand the internals of that bounded context and can ignore the others.

The communication between the bounded contexts is event-driven. This means that the module you are working in will process incoming events from other modules and emit events for other modules to process. For new contributors who have yet not worked with event-driven architectures this way of communicating might take some getting used to, but please do not introduce any APIs for communicating between bounded contexts.

Overview of bounded contexts

Note: Historically, we have had two bounded contexts called User Management and Volunteer Reporting. We are in the process of merging these into one and renaming the merged bounded context to "Reporting".

Bounded Context Description Issue label Bounded Context Folder
Reporting Registering "data collectors", parsing and validation of incoming text messages from data collectors. «Data verifiers» and «data owners» can view, search, filter and export «case reports» and provide feedback to the Reporting & Volunteer Reporting VolunteerReporting
Admin Administrative features such as managing health risks, projects, feedback messages and much more. Admin Admin
Alerts All «health risks» have a set «threshold». If the «threshold» is exceeded, an «alert» will be created to notify the Red Cross and other interested parties. Alerts Alerts
Analytics Transforming data into actionable intelligence with reporting and dashboards. Analytics Analytics
Notification Gateway Notification gateway receiving and sending text messages and emails. SMS Proxy Sms

Jump to Development on Bounded Contexts