Data ownership is architecture
The hard part of databases is rarely SQL syntax. It is deciding who owns a fact.
If every service reads every table, the system becomes one large distributed shortcut.
Good boundaries look like this:
- One service owns writes
- Other services consume events or APIs
- Reports read from dedicated projections
That discipline feels slower at first. Later, it saves migrations, incidents, and meetings.