Skip to main content
added 37 characters in body
Source Link

Background:

I work on a small group (5-10) of lightly used .Net web applications.

The applications typically have dedicated databases, but there are instances of an application accessing another application's database directly. There is also a common database that most of the applications use a source of truth for some data

I have been trying to decide on a methodology that we can begin to adopt to prevent the following types of questions:

  • How will a proposed change to the database affect our family of applications?
  • Which applications use this table?
  • How did our database connections become a hot spaghetti mess?

Possible Solutions:

Here are the possible solutions I have thought of:

  • Accept the current position and allow applications to access each other's databases as needed
  • Follow a 1 database <--> 1 application model and have the applications communicate via API when they need to get information from each other
  • Create dedicated code libraries / packages for database access, which are consumed by our applications
  • Move toward a mono-repo solution where multiple applications share a single repo. Build modules within that repo to be responsible for database access
  • Investigate using a message bus of some kind.
    • I do not have much experience in this area and it seems like overkill to me.

QuestionsQuestion:

My goal with this question is to have a full list of reasonable approaches I could take, so I can consider the pros and cons and pick an approach.

Can anyone think of other possible solutions that I am not considering?

Has anyone else encountered a similar situation? If so, what solution did you choose and how did it go?

Background:

I work on a small group (5-10) of lightly used .Net web applications.

The applications typically have dedicated databases, but there are instances of an application accessing another application's database directly. There is also a common database that most of the applications use a source of truth for some data

I have been trying to decide on a methodology that we can begin to adopt to prevent the following types of questions:

  • How will a proposed change to the database affect our family of applications?
  • Which applications use this table?
  • How did our database connections become a hot spaghetti mess?

Possible Solutions:

Here are the possible solutions I have thought of:

  • Accept the current position and allow applications to access each other's databases as needed
  • Follow a 1 database <--> 1 application model and have the applications communicate via API when they need to get information from each other
  • Create dedicated code libraries / packages for database access, which are consumed by our applications
  • Move toward a mono-repo solution where multiple applications share a single repo. Build modules within that repo to be responsible for database access
  • Investigate using a message bus of some kind.
    • I do not have much experience in this area and it seems like overkill to me.

Questions:

Can anyone think of other possible solutions that I am not considering?

Has anyone else encountered a similar situation? If so, what solution did you choose and how did it go?

Background:

I work on a small group (5-10) of lightly used .Net web applications.

The applications typically have dedicated databases, but there are instances of an application accessing another application's database directly. There is also a common database that most of the applications use a source of truth for some data

I have been trying to decide on a methodology that we can begin to adopt to prevent the following types of questions:

  • How will a proposed change to the database affect our family of applications?
  • Which applications use this table?
  • How did our database connections become a hot spaghetti mess?

Possible Solutions:

Here are the possible solutions I have thought of:

  • Accept the current position and allow applications to access each other's databases as needed
  • Follow a 1 database <--> 1 application model and have the applications communicate via API when they need to get information from each other
  • Create dedicated code libraries / packages for database access, which are consumed by our applications
  • Move toward a mono-repo solution where multiple applications share a single repo. Build modules within that repo to be responsible for database access
  • Investigate using a message bus of some kind.
    • I do not have much experience in this area and it seems like overkill to me.

Question:

My goal with this question is to have a full list of reasonable approaches I could take, so I can consider the pros and cons and pick an approach.

Can anyone think of other possible solutions that I am not considering?

Source Link

Possible Solutions for avoiding applications sharing database

Background:

I work on a small group (5-10) of lightly used .Net web applications.

The applications typically have dedicated databases, but there are instances of an application accessing another application's database directly. There is also a common database that most of the applications use a source of truth for some data

I have been trying to decide on a methodology that we can begin to adopt to prevent the following types of questions:

  • How will a proposed change to the database affect our family of applications?
  • Which applications use this table?
  • How did our database connections become a hot spaghetti mess?

Possible Solutions:

Here are the possible solutions I have thought of:

  • Accept the current position and allow applications to access each other's databases as needed
  • Follow a 1 database <--> 1 application model and have the applications communicate via API when they need to get information from each other
  • Create dedicated code libraries / packages for database access, which are consumed by our applications
  • Move toward a mono-repo solution where multiple applications share a single repo. Build modules within that repo to be responsible for database access
  • Investigate using a message bus of some kind.
    • I do not have much experience in this area and it seems like overkill to me.

Questions:

Can anyone think of other possible solutions that I am not considering?

Has anyone else encountered a similar situation? If so, what solution did you choose and how did it go?