Skip to content
David Benedeki edited this page Oct 24, 2025 · 2 revisions

Philosophy

The philosophy of this project is centered around the idea, that an application should be accessing the database only via stored procedures/functions. This means that all data read and write operations are performed through these database functions, establishing a stable contract between the application and the database.

This approach offers several benefits:

  • Storing and retrieving the data effectively differs from the main application logic
  • Separation of concerns
  • Separation of duties
  • Protection of data from unauthorized read
  • Protection of data consistency
  • Scaling
  • Testability
  • Portability

Fa-DB library aims to facilitate a natural and idiomatic way to call these database functions from Scala applications, making it easier to work with stored procedures/functions while adhering to the principles of functional programming and type safety.

Clone this wiki locally