3 unstable releases

0.1.1 Jul 10, 2024
0.1.0 Jun 14, 2024
0.0.0 Mar 20, 2024

#723 in Configuration

37 downloads per month

LGPL-3.0-or-later

175KB
3K SLoC

ProSA - Protocol Service Adaptor

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.

Legend

ProSA components are illustrated:

  • Main: main
  • TVF: tvf
  • Processor: processor
  • Settings: settings
  • Adaptor: adaptor

Service approach

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

Getting Started

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

Deploying

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.

Processor list

// Coming opensource ProSA processor list

Authors

Worldline

Posterity

Dependencies

~20–31MB
~479K SLoC