SumOfUs / sumofus

0 stars 0 forks source link

Members' Dashboard, again #20

Open osahyoun opened 8 years ago

osahyoun commented 8 years ago

Hello!

With GoCardless not far from completion, I thought I’d quickly share a brief description and diagram of what I had in mind for our members’ dashboard (as promised some weeks ago).

Here’s the diagram: https://docs.google.com/a/sumofus.org/drawings/d/1AccHzFvr3mtLAicJZI80lwF5yecqAvtjK6mSNot7M9g/edit?usp=sharing

What I’m proposing is really simple and won’t take long to outline:

The Members’ Dashboard (MD) is built as single page app serviced by a separate API application.

The API service will share the same database as Champaign and will:

And that is it!

We’ve also talked about dividing champaign into two separate applications. I’ll quickly repeat below my idea for how we could do this.

To keep this manageable and painless, I think we could kick things off by cloning the Champaign codebase. The original Champaign would continue serving members at actions.sumofus.org, whilst its copy would handle traffic from campaigners (at admin.sumofus.org). We'd then axe the redundant code from each codebase.

To be clear, what I’m proposing above has nothing to do with microservice architecture. The separate apps (members' dashboard, included) will share a common datastore, but they will have no reason to communicate with each other.

At this point in time I don’t think we need to be thinking about microservices. We haven’t the resources to implement and maintain such a stack, but also I don’t think we have the pressures to warrant such a move.

Cheers!

Tuuleh commented 8 years ago

This is nice, Omar, thank you. I suggest we book some time at some point next week to talk about this - I'd like to be clear on the whole architecture before we split the application. Namely, I think we should talk about data storage, since I think we might eventually want the two applications to use different data storage.

On Thu, Apr 28, 2016 at 7:00 AM, Omar Sahyoun notifications@github.com wrote:

Hello!

With GoCardless not far from completion, I thought I’d quickly share a brief description and diagram of what I had in mind for our members’ dashboard (as promised some weeks ago).

Here’s the diagram: https://docs.google.com/a/sumofus.org/drawings/d/1AccHzFvr3mtLAicJZI80lwF5yecqAvtjK6mSNot7M9g/edit?usp=sharing

What I’m proposing is really simple and won’t take long to outline:

The Members’ Dashboard (MD) is built as single page app serviced by a separate API application.

The API service will share the same database as Champaign and will:

  • handle member authorisations.
  • provide r/w access to a member’s payment information

And that is it!

We’ve also talked about dividing champaign into two separate applications. I’ll quickly repeat below my idea for how we could do this.

To keep this manageable and painless, I think we could kick things off by cloning the Champaign codebase. The original Champaign would continue serving members at actions.sumofus.org, whilst its copy would handle traffic from campaigners (at admin.sumofus.org). We'd then axe the redundant code from each codebase.

To be clear, what I’m proposing above has nothing to do with microservice architecture. The separate apps (members' dashboard, included) will share a common datastore, but they will have no reason to communicate with each other.

At this point in time I don’t think we need to be thinking about microservices. We haven’t the resources to implement and maintain such a stack, but also I don’t think we have the pressures to warrant such a move.

Cheers!

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/SumOfUs/sumofus/issues/20

osahyoun commented 8 years ago

@Tuuleh sorry, I somehow missed your comment (above).

@NealJMD @Tuuleh looking forward to Friday's discussion on this - may it be fruitful!