Skip to content

thewhitewizard/uniswap-listener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ¦„ Uniswap Event Pipeline

A Rust-based event streaming pipeline that listens for Uniswap V3 events on Arbitrum and persists them to PostgreSQL via NATS JetStream.

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  uniswap-listener   │────▢│    NATS      │────▢│  uniswap-injestor   │────▢│ PostgreSQL β”‚
β”‚  (blockchain events)β”‚     β”‚  JetStream   β”‚     β”‚  (durable consumer) β”‚     β”‚            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Crates

Crate Description
uniswap-listener Subscribes to Uniswap V3 contract events and publishes them to NATS
uniswap-injestor Consumes events from NATS and persists them to PostgreSQL
nats-messages Shared message definitions for NATS communication
common Shared configuration utilities

Key Features

  • At-least-once delivery via NATS JetStream durable consumers
  • Deduplication using checksums (chain_id + tx_hash + log_index)
  • Horizontal scaling - multiple injestors share the workload automatically
  • Resilient - unacked messages are redelivered on failure

About

A Rust-based event streaming pipeline that listens for Uniswap V3 events on Arbitrum and persists them to PostgreSQL via NATS JetStream.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages