ProSA is a merge of multiple Worldline internal product concepts caviarized to be released as a Rust open-source. The library aimed at providing a simple and lightweight protocol service adaptor for service oriented architectures. The goal of this project is to provide a flexible and scalable platform for developing and deploying microservices, allowing developers to focus on writing business logic while ProSA takes care of the underlying infrastructure concers.
A ProSA mdBook is available if you want to learn everything about ProSA.
ProSA components are illustrated:
ProSA is made to empower SOA (Service Oriented Architecture). To do so, ProSA is built around a service bus that can be local or distributed.
Around the service bus, there are gravitating processors that offer or consume services.
flowchart LR
    proc1(Processor)
    proc2(Processor)
    bus((Main))
    proc1 <--> bus
    bus <--> proc2
    ProSA processors can be autonomous or built to connect external systems to make them accessible as a service.
flowchart LR
    ext(External System)
    adapt(Adaptor)
    proc(Processor)
    bus((Main))
    ext <-- Protocol Exchange --> adapt
    subgraph Processor
    adapt <-- protocol adaptation --> proc
    end
    proc -- internal service message --> bus
    Everything you need to know about ProSA components is describe in the Docs.rs documentation.
flowchart LR
    main((Main))
    tvf([TVF])
    proc(Processor)
    settings(Settings)
    adapt(Adaptor)
    click main "https://docs.rs/prosa/latest/prosa/core/main/" "Main"
    click tvf "https://docs.rs/prosa_utils/latest/prosa_utils/msg/tvf/" "TVF"
    click proc "https://docs.rs/prosa/latest/prosa/core/proc/" "Processor"
    click settings "https://docs.rs/prosa/latest/prosa/core/settings/" "Settings"
    click adapt "https://docs.rs/prosa/latest/prosa/core/adaptor/" "Adaptor"
    main <--> proc
    adapt <--> tvf
    subgraph Processor
    proc <--> adapt
    end
    settings --> Processor
    ProSA is not a full product that you can run. It's intended to be a framework to run processors that offer/consume services.
So ProSA needs to be built with a set of processors (internal or external) to work. To build one, please refer to cargo-prosa.
- Hyper: HTTP processor