Packages
reckon_db
2.3.3
5.11.0
5.10.4
5.10.3
5.10.1
5.10.0
5.9.1
5.9.0
5.8.3
5.8.2
5.8.1
5.8.0
5.7.0
5.6.1
5.6.0
5.5.5
5.5.4
5.5.3
5.5.2
5.5.1
5.5.0
5.4.0
5.2.2
5.2.1
5.2.0
5.1.0
5.0.0
4.0.0
3.1.2
3.1.1
3.0.0
2.3.7
2.3.6
2.3.5
2.3.4
2.3.3
2.3.2
2.3.1
2.3.0
2.2.2
2.2.0
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.0
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.3
1.3.2
1.3.1
1.3.0
1.2.7
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.1
1.1.0
1.0.3
1.0.2
1.0.1
1.0.0
BEAM-native Event Store built on Khepri/Ra with Raft consensus. Event sourcing, persistent subscriptions, snapshots, and automatic cluster formation via UDP multicast discovery. Ships embedded Rust NIFs for 3-15x acceleration of crypto, hashing, compression, aggregation, filter matching, and grap...
Current section
Files
Jump to
Current section
Files
assets/subscriptions.svg
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 400">
<defs>
<linearGradient id="bg3" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#1a1a2e"/>
<stop offset="100%" style="stop-color:#16213e"/>
</linearGradient>
<filter id="shadow3" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="2" dy="3" stdDeviation="3" flood-opacity="0.3"/>
</filter>
</defs>
<rect width="800" height="400" fill="url(#bg3)"/>
<!-- Title -->
<text x="400" y="35" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="22" font-weight="bold">Subscription Types</text>
<!-- Event Store -->
<rect x="50" y="80" width="140" height="280" rx="8" fill="#0f3460" filter="url(#shadow3)"/>
<text x="120" y="105" text-anchor="middle" fill="#e94560" font-family="Arial, sans-serif" font-size="12" font-weight="bold">Event Store</text>
<!-- Events in store -->
<rect x="65" y="120" width="110" height="30" rx="4" fill="#4ade80"/>
<text x="120" y="140" text-anchor="middle" fill="#000" font-family="monospace" font-size="9">order-123 v0</text>
<rect x="65" y="155" width="110" height="30" rx="4" fill="#60a5fa"/>
<text x="120" y="175" text-anchor="middle" fill="#000" font-family="monospace" font-size="9">user-456 v0</text>
<rect x="65" y="190" width="110" height="30" rx="4" fill="#4ade80"/>
<text x="120" y="210" text-anchor="middle" fill="#000" font-family="monospace" font-size="9">order-123 v1</text>
<rect x="65" y="225" width="110" height="30" rx="4" fill="#f59e0b"/>
<text x="120" y="245" text-anchor="middle" fill="#000" font-family="monospace" font-size="9">order-789 v0</text>
<rect x="65" y="260" width="110" height="30" rx="4" fill="#60a5fa"/>
<text x="120" y="280" text-anchor="middle" fill="#000" font-family="monospace" font-size="9">user-456 v1</text>
<rect x="65" y="295" width="110" height="30" rx="4" fill="#4ade80"/>
<text x="120" y="315" text-anchor="middle" fill="#000" font-family="monospace" font-size="9">order-123 v2</text>
<!-- By Stream -->
<rect x="230" y="80" width="130" height="130" rx="8" fill="#533483" filter="url(#shadow3)"/>
<text x="295" y="105" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="11" font-weight="bold">by_stream</text>
<text x="295" y="125" text-anchor="middle" fill="#a78bfa" font-family="monospace" font-size="9">"order-123"</text>
<rect x="245" y="140" width="100" height="22" rx="3" fill="#4ade80"/>
<text x="295" y="155" text-anchor="middle" fill="#000" font-family="monospace" font-size="8">order-123 v0</text>
<rect x="245" y="165" width="100" height="22" rx="3" fill="#4ade80"/>
<text x="295" y="180" text-anchor="middle" fill="#000" font-family="monospace" font-size="8">order-123 v1</text>
<rect x="245" y="190" width="100" height="10" rx="3" fill="#4ade80" opacity="0.5"/>
<!-- By Event Type -->
<rect x="380" y="80" width="130" height="130" rx="8" fill="#0f3460" filter="url(#shadow3)"/>
<text x="445" y="105" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="11" font-weight="bold">by_event_type</text>
<text x="445" y="125" text-anchor="middle" fill="#60a5fa" font-family="monospace" font-size="9">"UserCreated"</text>
<rect x="395" y="140" width="100" height="22" rx="3" fill="#60a5fa"/>
<text x="445" y="155" text-anchor="middle" fill="#000" font-family="monospace" font-size="8">user-456 v0</text>
<rect x="395" y="165" width="100" height="22" rx="3" fill="#60a5fa"/>
<text x="445" y="180" text-anchor="middle" fill="#000" font-family="monospace" font-size="8">user-789 v0</text>
<rect x="395" y="190" width="100" height="10" rx="3" fill="#60a5fa" opacity="0.5"/>
<!-- By Pattern -->
<rect x="530" y="80" width="130" height="130" rx="8" fill="#166534" filter="url(#shadow3)"/>
<text x="595" y="105" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="11" font-weight="bold">by_pattern</text>
<text x="595" y="125" text-anchor="middle" fill="#4ade80" font-family="monospace" font-size="9">"order-*"</text>
<rect x="545" y="140" width="100" height="22" rx="3" fill="#4ade80"/>
<text x="595" y="155" text-anchor="middle" fill="#000" font-family="monospace" font-size="8">order-123 v0</text>
<rect x="545" y="165" width="100" height="22" rx="3" fill="#f59e0b"/>
<text x="595" y="180" text-anchor="middle" fill="#000" font-family="monospace" font-size="8">order-789 v0</text>
<rect x="545" y="190" width="100" height="10" rx="3" fill="#4ade80" opacity="0.5"/>
<!-- By Payload -->
<rect x="680" y="80" width="100" height="130" rx="8" fill="#7c2d12" filter="url(#shadow3)"/>
<text x="730" y="105" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="11" font-weight="bold">by_payload</text>
<text x="730" y="125" text-anchor="middle" fill="#f97316" font-family="monospace" font-size="8">vip: true</text>
<rect x="693" y="140" width="74" height="22" rx="3" fill="#f97316"/>
<text x="730" y="155" text-anchor="middle" fill="#000" font-family="monospace" font-size="7">matched</text>
<rect x="693" y="165" width="74" height="10" rx="3" fill="#f97316" opacity="0.5"/>
<!-- Emitter Pool -->
<rect x="230" y="235" width="550" height="145" rx="8" fill="#0a2540" filter="url(#shadow3)"/>
<text x="505" y="260" text-anchor="middle" fill="#e94560" font-family="Arial, sans-serif" font-size="14" font-weight="bold">Emitter Pool</text>
<text x="505" y="280" text-anchor="middle" fill="#888" font-family="Arial, sans-serif" font-size="10">High-throughput event delivery with configurable pool size</text>
<!-- Emitter workers -->
<rect x="260" y="295" width="70" height="35" rx="4" fill="#e94560"/>
<text x="295" y="317" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="9">Emitter 1</text>
<rect x="345" y="295" width="70" height="35" rx="4" fill="#e94560"/>
<text x="380" y="317" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="9">Emitter 2</text>
<rect x="430" y="295" width="70" height="35" rx="4" fill="#e94560"/>
<text x="465" y="317" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="9">Emitter 3</text>
<rect x="515" y="295" width="70" height="35" rx="4" fill="#e94560"/>
<text x="550" y="317" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="9">Emitter 4</text>
<text x="620" y="317" fill="#888" font-family="Arial, sans-serif" font-size="20">...</text>
<!-- Subscribers -->
<rect x="260" y="340" width="70" height="25" rx="4" fill="#533483"/>
<text x="295" y="357" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="8">Subscriber</text>
<rect x="345" y="340" width="70" height="25" rx="4" fill="#533483"/>
<text x="380" y="357" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="8">Subscriber</text>
<rect x="430" y="340" width="70" height="25" rx="4" fill="#533483"/>
<text x="465" y="357" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="8">Subscriber</text>
<rect x="515" y="340" width="70" height="25" rx="4" fill="#533483"/>
<text x="550" y="357" text-anchor="middle" fill="#fff" font-family="Arial, sans-serif" font-size="8">Subscriber</text>
<!-- Arrows from store to subscriptions -->
<path d="M190 145 L225 145" stroke="#4ade80" stroke-width="2" fill="none"/>
<path d="M190 200 L280 200 L280 210" stroke="#4ade80" stroke-width="2" fill="none"/>
<path d="M190 160 L380 160 L380 135" stroke="#60a5fa" stroke-width="2" fill="none"/>
<path d="M190 235 L530 235 L530 210" stroke="#4ade80" stroke-width="2" fill="none"/>
</svg>