⚠ 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