Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Take care the serverless architecture and graphql #10266

Open
mehmetaydogduu opened this issue Mar 14, 2019 · 0 comments
Open

Take care the serverless architecture and graphql #10266

mehmetaydogduu opened this issue Mar 14, 2019 · 0 comments
Labels
suggestion Feature suggestion

Comments

@mehmetaydogduu
Copy link

I've reviewed the source code and it's really spectacular. I found 3 problems in mastodon like other Rails apps.

  1. API
  • Serializers is slow.
  • View not using same fields for all versions of a component. Sometimes unnecessary fields are returning from api and we are not using it on the view. We cannot develop a serializer for each variants of a component.
  • Business Logic and Serializing Data intertwined in the code.
  1. Domain Isolation
  • Separating services by domain makes it easier to scale and maintenance. That's why micro service architecture is born. The follower system and like system must be separated. Also counting views of a post must be separated than sending post to client.
  1. High scalability and high availability
  • Some services are under heavy load, some services are not. So while image upload service having 2 instances, search service can need more than 2 instances.
  • Also for an app that consuming traffic worldwide, we need copies of our services in both Asia, Europe and America. So a service discovery tool is needed.
  • Also having only one PostgreSQL instance is a problem.

Final: I suggest you take a look at the following technologies.
https://serverless.com/
https://hasura.io/
https://traefik.io/

@Gargron Gargron added the suggestion Feature suggestion label May 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
suggestion Feature suggestion
Projects
None yet
Development

No branches or pull requests

2 participants