application-research / outercore-eng-kb

Official Knowledge base repo of Estuary
https://estuary.tech
5 stars 0 forks source link

EstuaryV2 #2

Open alvin-reyes opened 1 year ago

alvin-reyes commented 1 year ago

Proposal: EstuaryV2 / WhyPFS

Contributors @alvin-reyes
Status Draft
Revision

Proposal/Overview

Single node model of Estuary built from different importable microservices

image

Approach

Breakdown of the services

Core services

1 - database 2 - blockstore node 3 - gateway 4 - storage-deal-making 5 - retrieval-deal-making

Outer services

1 - authentication 2 - logging 3 - pinning 4 - collections 5 - staging-buckets 6 - queue

Definition of done:

1 - dockerfile 2 - docker-compose.yml


WhyPFS Node

The new Estuary node will be a single node model where the actors can either be an API node, Core Node or Both (API and Core Node).

Technical Design

WhyPFS Core

WhyPFS core - the core node that will be use to peer with other WhyPFS nodes. This is an importable module that has IPLD Dag Service built in. It’s also the main component that manages blockstore, datastore.

WhyPFS Node

WhyPFS Queue

This is a batch job framework built it on the WhyPFS node. This will run several pre-configured or customer configured jobs within the lifespan of the running node including Content Management Queue, Pinning requests / Auto Pinning, and Garbage collection

Custom Queue Job: Bucket / Queuing Jobs for Processing Content and Deals.

image

There will be 2 types of bucket

Bucket Components

WhyPFS WebUI

This the webui interface for WhyPFS. This will be a dashboard of stats for each node. The stat includes:

WhyPFS - Service

Proxifier - load balancer layer

Authorization - decoupled the authorization that nodes can opt-in.

Deliverables / Definition of Done

alvin-reyes commented 1 year ago

Extended/refined version of this: https://docs.google.com/document/d/1hUlemd9V59IfPZ-WAEDfIq3c8dAX7dXE73gdV-YEKrQ/edit#