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

Making highly-available and scalable Node.js applications easy to build #79

Open
pgte opened this issue Oct 21, 2016 · 0 comments
Open

Comments

@pgte
Copy link

pgte commented Oct 21, 2016

Title

Making highly-available and scalable Node.js applications easy to build

Description

Micro-services are a great concept: they make developer's lives easier by splitting each business domain into it's own separate autonomous service. But how do these services handle data persistence? Usually, they do this by using a separate data layer that implements a specific database product.

This approach has many disadvantages, and here are some:

Complexity: this separate data layer is cumbersome to deploy and manage: it has it's own run-time and new set of dependencies, introducing a lot of complexity.

Distance: having a separate data layer means that your application process must access the network every time it requires to read or write data.

Availability: Having the data as a new separate layer introduces at least one new point of failure and a set of new failure modes. Several techniques allow the database to be highly available, but almost always this comes with a big cost of adding significant complexity to the application code.

Aiming to solve these problems, I propose a style of architecture and pure Node.js-based implementation.

Learning objectives

By watching this talk attendees will be familiarized with distributed systems challenges and some solutions. They will learn about strong and eventual consistency, data partitioning, data locality techniques, distributed consensus and the Raft consensus protocol.

City of residence

Funchal, Portugal

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants