Real-time reactive data streaming demo with Skip - showcasing cross-resource updates and automatic data enrichment
This project demonstrates Skip's powerful reactive data streaming capabilities through a live, interactive demo featuring:
- Real-time data streaming across multiple interconnected resources
- Automatic data enrichment with cross-table joins and relationships
- Reactive updates that propagate instantly across the entire data graph
- Investment tracking with historical vs. current pricing
- Multi-stream coordination showing the same data from different perspectives
The demo provides four real-time streams that update automatically when data changes:
- Products Stream - Products with current pricing (enriched view)
- Prices Stream - Raw price data (focused view)
- Users Stream - User information
- User-Owned Products Stream - Ownership data enriched with user, product, and pricing details
Run the comprehensive demo that shows:
- Creating products and adding prices
- Users purchasing products with automatic data enrichment
- Price changes propagating across multiple streams simultaneously
- Real-time investment tracking (purchase price vs. current price)
- Cross-resource updates and cascading deletes
# Quick start - run everything
./init_server.sh # Setup database and build
./demo_skip_full.sh # Run the interactive demo- No polling required - changes appear instantly
- Skip automatically manages data relationships
- Consistent data across all streams
- Products include current pricing
- User-owned products automatically include user details, product info, AND current pricing
- Cross-table joins happen automatically
- Price changes update products, prices, AND user-owned-products streams
- Product info changes propagate to user-owned-products
- User info updates propagate to related records
- Compare purchase price vs current price in real-time
- Perfect for portfolio tracking and financial applications
- Historical data preservation with live market updates
Built with modern technologies:
- Skip - Reactive data streaming framework
- TypeScript - Type-safe development
- Fastify - High-performance web framework
- PostgreSQL - Relational database with sample data
- Docker - Containerized database setup
users- User accounts with sample data (Ada Lovelace, Alan Turing, etc.)products- Product catalogproduct_prices- Current pricing datauser_owned_products- User ownership with purchase history- Rich sample data for immediate demonstration
- Node.js (Latest LTS version)
- pnpm package manager
- Docker (for PostgreSQL)
# Complete setup
./init_server.sh
# Or manual setup
pnpm install
pnpm build
pnpm start
# Clean everything
./clean_all.sh./init_server.sh- Complete setup (database + build)./demo_skip_full.sh- Run interactive demo./clean_all.sh- Complete cleanup (Docker + files)pnpm build- Build TypeScriptpnpm start- Start the serverpnpm format- Format code
- Products:
/products(CRUD) - Prices:
/product-prices(CRUD) - Users:
/users(GET only) - User-Owned Products:
/user-owned-products(CRUD)
- Products:
/streams/products - Prices:
/streams/prices - Users:
/streams/users - User-Owned Products:
/streams/user-owned-products
All streams support filtering by ID: /streams/{resource}/:uid
- Financial Applications - Portfolio tracking, investment monitoring
- E-commerce Platforms - Inventory with pricing, user purchases
- IoT Dashboards - Sensor data with metadata enrichment
- Real-time Analytics - Live data aggregation and correlation
- Any application requiring live, enriched data views
Use DEMO_SCRIPT.md for guided presentation talking points.
Typical demo flow (~5-7 minutes):
- Show existing data streams
- Create product → watch streams update
- Add pricing → see cross-stream updates
- User purchase → demonstrate data enrichment
- Price increase → show reactive propagation
- Product updates → cross-resource synchronization
ISC License
Ready to see reactive data streaming in action? Run ./demo_skip_full.sh and watch the magic happen! ✨