You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Efficient brokering of data between processes, is something that the internet giants have figured out. Different tools, but we chose to rely on REDIS.
REDIS (REmote DIctionary Server):
High Performance (operates in-memory) <1ms latency when run locally
Support large data volumes (<512 MB per message)
Distributed (ie. not geo-located)
Versatility of data structures (lists, queues, streams, timeseries,...) with atomic operations
Pub/Sub System
Synchronous / Asynchronous communication patterns
Supports multiple producers / consumers pattern
Horizontal and vertical scalability
Multi-language client libraries and open protocol
Used by Twitter, GitHub, Snapchat, Airbnb, Netflix
In comparison to other tools:
Unlike Memcached, REDIS supports a wider range of data structures and persistence.
While Kafka and RabbitMQ are more focused on message queuing and streaming, REDIS offers these capabilities along with its role as a data store and cache.
Compared to database services like DynamoDB, REDIS can serve as a more immediate, low-latency layer for data access and manipulation.
Unlike Hazelcast and etcd, which are more focused on distributed computing and configuration management respectively, REDIS offers a more general-purpose approach with its data structure support and performance.
Vision
To be used by FUSE for:
plant/controller co-simulation
execute IMAS actors (simpler/better solution of MUSCLE3)
FXP Version 0.1
[N-to-1 synchronous]
N service requestors
1 service provider
synchronous communication
sequenceDiagram
autonumber
actor FUSE
participant REDIS
actor TokSys as Service Provider
rect rgb(255, 191, 223)
TokSys--)REDIS: Register service X (subscribe to channel X)
end
rect rgb(255, 191, 223)
FUSE-->REDIS: Is service X available? (pubsub channels)
FUSE--)TokSys: publish FUSE session ID to channel X
end
loop
rect rgb(191, 223, 255)
FUSE->>+REDIS: lpush service inputs
note over REDIS: ID__X__fuse2srvc
REDIS->>-TokSys: brpop service inputs
end
rect rgb(191, 223, 255)
TokSys->>+REDIS: lpush service outputs
note over REDIS: ID__X__srvc2fuse
REDIS->>-FUSE: brpop service outputs
end
end
Loading
The text was updated successfully, but these errors were encountered:
orso82
changed the title
Fusion eXchange Protocol (FXP)
Fusion eXchange Protocol (FXP) Version 0.1
Feb 10, 2024
Efficient brokering of data between processes, is something that the internet giants have figured out. Different tools, but we chose to rely on REDIS.
REDIS (REmote DIctionary Server):
Vision
FXP Version 0.1
The text was updated successfully, but these errors were encountered: