⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠ You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’

Excalidraw Data

Text Elements

SQL metadata

server

client

POST /paste

cloud object storage

pasteId

pasteId for url

Single Service for key generation and storage is not scalable for pastebin loads.

SQL metadata

server

POST /paste

cloud object storage

pasteId for url

pasteId

rate limiter

client

Key generation service

1

2

3

4

Paste bin server implementation

validate content for profanity using bloom filters

checksum validation

compress using Huffman encoding

encrypt using AES advance encryption strategy

The paste can be processed asynchronously by introducing a message queue in the system to collect the message when a new paste is created.

LB

TOken range service

KGS

Load balancer

token service

token service

Token range service

fetch latest range of keys to by used by token service

Improved Paste bin working KGS queries the bloom filter to check if the custom paste ID already exists in the database The token service creates a paste ID KGS populates the bloom filter with the generated paste ID The server stores the paste content in object storage The metadata of the paste is stored in the SQL database

SQL metadata

server

POST /paste

cloud object storage

pasteId for url

pasteId

rate limiter

client

1

2

KGS

Bloom filter

token service

token service zookeepr Token range service

paste key

round robin

round robin

3

4

5

6

WRite

REad

SQL metadata

server

GET /paste/pasteId

pasteId

rate limiter

client

1

2

KGS

Bloom filter

3

4 fetch from db if not in cache and update cache

does paste id exist?

cache for pasteid and url

3 fetch from cache

object storage

5

Queue

Paste bin server