Skip to content

Latest commit

 

History

History
28 lines (24 loc) · 1.55 KB

0008-bounded-contexts.md

File metadata and controls

28 lines (24 loc) · 1.55 KB
  • Start Date: 11/13/2023
  • Contributors:
  • RFC PRs:
    • PRELIMINARY REVIEW: #20
    • DRAFT REFINEMENT: TBD
    • PUBLIC REVIEW: TBD
    • FINAL REVIEW: TBD
  • Outcome:

Bounded contexts

Summary

The term bounded context often appears in discussions about decomposing a monolithic system into multiple microservices. Instead of all services sharing a single database, the system is partitioned into several bounded contexts, each with it's own database, data models, etc. In Folio's case, we're working the other direction. When the project started, it was decided that each module should have their own database, and cross-module database access must be avoided. Coupling this with another practice the project has followed, separating business logic and storage modules, we wind up with suboptimal service/storage interactions. It is proposed that we introduce the concept of bounded contexts, which would align with Application boundaries. Any of the backend modules in a given Application would be able to directly access the storage layer.

Scope

  • Cross-module database access
    • Data "ownership" and read vs write access
  • Ensuring data integrity
  • Example use cases
  • Practical considerations for how this will work
  • Backward compatibility with Folio instances not adopting Applications
  • Access to any databases outside of the bounded context / Application is out of scope

Timing

  • Fourth in the sequence.
  • RFC Submission: ~Early-Mid January '24