import { ArrowRight, ArrowUpRight, Circle, Database, Plus } from 'lucide-react' import { useTheme } from 'next-themes' import Link from 'next/link' import { useMemo } from 'react' import ReactFlow, { Background, Handle, Position, ReactFlowProvider } from 'reactflow' import 'reactflow/dist/style.css' import { BASE_PATH } from 'lib/constants' import { Button, Card, CardContent } from 'ui' import { NODE_WIDTH } from '../../Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration.constants' const STATIC_NODES = [ { id: '1', type: 'primary', data: { label: 'Primary Database', region: 'East US (Ohio)', provider: 'AWS', regionIcon: 'us-east-1', }, position: { x: 825, y: 0 }, }, { id: '2', type: 'replica', data: { label: 'Iceberg', details: '3 tables', regionIcon: 'us-west-1', }, position: { x: 875, y: 110 }, }, { id: '3', type: 'replica', data: { label: 'BigQuery', details: '5 tables', regionIcon: 'us-west-1', }, position: { x: 875, y: 200 }, }, { id: '4', type: 'blank', position: { x: 875, y: 290 }, data: {}, }, { id: '5', type: 'cta', position: { x: 125, y: 20 }, data: {}, }, ] const STATIC_EDGES = [ { id: 'e1-2', source: '1', target: '2', type: 'smoothstep', animated: true }, { id: 'e1-3', source: '1', target: '3', type: 'smoothstep', animated: true }, { id: 'e1-4', source: '1', target: '4', type: 'smoothstep', animated: true }, ] export const ReplicationComingSoon = ({ projectRef }: { projectRef: string }) => { return ( ) } const ReplicationStaticMockup = ({ projectRef }: { projectRef: string }) => { const nodes = useMemo(() => STATIC_NODES, []) const edges = useMemo(() => STATIC_EDGES, []) const { resolvedTheme } = useTheme() const backgroundPatternColor = resolvedTheme === 'dark' ? 'rgba(255, 255, 255, 0.3)' : 'rgba(0, 0, 0, 0.4)' const nodeTypes = useMemo( () => ({ primary: PrimaryNode, replica: ReplicaNode, blank: BlankNode, cta: () => CTANode({ projectRef }), }), [projectRef] ) return (
) } const PrimaryNode = ({ data, }: { data: { label: string; region: string; provider: string; regionIcon: string } }) => { return (

{data.label}

{data.region}

{data.provider}

region icon
) } const ReplicaNode = ({ data, }: { data: { label: string; details: string; regionIcon: string } }) => { return (

{data.label}

{data.details}

region icon
) } const BlankNode = () => { return (
Add new
) } const CTANode = ({ projectRef }: { projectRef: string }) => { return (

Stream database changes to external destinations

Automatically replicate your data to external data warehouses and analytics platforms in real-time. No manual exports, no lag.

We are currently in private alpha and slowly onboarding new customers to ensure stable data pipelines. Request access below to join the waitlist. Read replicas are available now.

) }