Skip to content
/ ReefNG Public

ReefNG: Universal Messaging Platform with Temporal

Notifications You must be signed in to change notification settings

elg0nz/ReefNG

Repository files navigation

⚠️ Warning: This is pre-pre alpha software. It's not even ready for testing.

ReefNG: Universal Messaging Platform

ReefNG is a provider-agnostic solution that allows supporting complex interactions with messaging providers in an unified way. Borrowing concepts from Entity Component System and Actor Model, ReefNG allows to maintain a simple and consistent interface for interacting with messaging providers, while allowing to use the full power of the underlying provider.

Features

Architecture Diagram

classDiagram
    Rails <|--|> Temporal 
    Temporal <|--|> ProviderWorkers

    class Rails {
        +entities()
        +components()
    }
    class Temporal {
        +systems()
        +interactionsWithProviders()
        +messageQueue()
        +webhooks()
        +clientInteractions()
    }
    
    class ProviderWorkers {
        +discord()
        +slack()
        +twilio()
    }
Loading

Message Flow Example

sequenceDiagram
    User->>Discord: Generate me a poster of three kittens howling at the moon?
    User-->>NexusServer: POST /discord/generate/image
    NexusServer-->>SystemWorker: Run GenerateImageWorkflow
    SystemWorker-->>AIWorker: Run GenerateImageActivity
    AIWorker-->>SystemWorker: return image
    SystemWorker-->>NexusServer: return image
    NexusServer-->>DiscordWorker: Run SendDiscordMessageWorkflow
    DiscordWorker-->>Discord: Run SendDiscordMessageActivity

    Discord->>User: Here's your poster!
Loading

About

ReefNG: Universal Messaging Platform with Temporal

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published