Repository for different services and components of the SWIM project. SWIM comes from german "Stadtweites Inputmanagement" which stands for "city-wide input management".
The different components are built with Spring.
Following a list and short description of the different components:
- matching-service: Service for managing recipient matching data for the SWIM
- dispatch-service: Service for notifying other services (i.e. DMS) that a file is ready for further processing via Kafka.
- handler-core: Library with base components for building a new service for handling notifications from the
dispatch-service. - dms-service: Service for transferring files into DMS when notified by the
dispatch-servicevia Kafka. Based onhandler-core. - dipa-service: Service for transferring files into DiPa when notified by the
dispatch-servicevia Kafka. Based onhandler-core. - invoice-service: Service for transferring files (invoices) to SAP when notified by the
dispatch-servicevia Kafka. Based onhandler-core. - scripts: Helper scripts for maintenance tasks.
flowchart LR
dispatch[dispatch-service] --> s3[(S3)]
%% dipa
dispatch -->|Apache Kafka| dipa[dipa-service] -->|SOAP| DiPa-EAI
dipa -->|presigned URLs| s3
dipa -->|Apache Kafka| dispatch
%% dms
dispatch -->|Apache Kafka| dms[dms-service] -->|REST| DMS-EAI
dms -->|presigned URLs| s3
dms -->|Apache Kafka| dispatch
%% invoice
dispatch -->|Apache Kafka| invoice[invoice-service] -->|SOAP| Invoice-EAI
invoice -->|presigned URLs| s3
invoice -->|Apache Kafka| dispatch
%% matching
matching[matching-service]
sequenceDiagram
autonumber
participant dispatch
participant s3
participant service as *-service
dispatch ->>+ s3: Check for files to process (filtered by tags and dirs)
s3 -->>- dispatch:
loop for each file
dispatch ->>+ service: Send file event via Apache Kafka
service -->>+ s3: Load file via presigned URL
s3 -->- service:
service ->> service: process file (make API calls ...)
service -->>- dispatch: Send file finished or error event via Apache Kafka
end
dispatch ->>+ s3: Tag file accordingly and move if necessary
s3 -->- dispatch:
flowchart LR
dispatch[dispatch-service] -->|1. get files to process| s3[(S3)]
dispatch -->|2. Apache Kafka| service[*-service] -->|4. do processing| API
service -->|3. presigned URLs| s3
service -->|5. Apache Kafka| dispatch
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please open an issue with the tag "enhancement", fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Open an issue with the tag "enhancement"
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
More about this in the CODE_OF_CONDUCT file.
Distributed under the MIT License. See LICENSE file for more information.
it@M - opensource@muenchen.de