Symphony Java Open Source Libraries
Description
Activity

robmoffat NA September 29, 2020 at 9:37 AM
Hi Gab,
Yes - we’ll cc the press release with some cover info to the announce@ list list when it’s ready.
cheers,
Rob

Gabriele Columbro September 28, 2020 at 4:12 PM
Great stuff - glad to see the conversation on the press release going. IN the meanwhile, are you still planning to send an email out to announce@ per template?
In the meanwhile, I’ll close this this issue as work is continuing on this github issue - once your announce@ email is out we can complete the remaining tasks there.
Thanks for all your help so far!

robmoffat NA September 24, 2020 at 8:33 AM
Hi Gab,
I just dropped an email about the announcement to Sally and Mark. Hopefully there is something from plexus they can re-use. Will let you know.
Great news about the Symphony contribution!

Gabriele Columbro September 23, 2020 at 3:31 PM
Hey , just FYI, we are now just waiting for your announcement email to close this issue and also proceed with more socialization /cc .
Let us know if / when you plan to send it so we can plan accordingly.
Also see my note connecting with UBS and Symphony re potential collaborations.
Looking forward to seeing this project grow in FINOS!

Gabriele Columbro September 3, 2020 at 12:47 AM
This is a very exciting contribution looking forward to see it in FINOS! Thanks for the contributions so far and looking forward to seeing the announcement email once this is onboarded!
Details
Details
Assignee

Reporter

Business Problem
Many banks are in the position of wanting to expose APIs and Services via Symphony so that they can be consumed within their own organisation, or to enable business-to-business flows. (Common use-cases at DB include sharing RFQ’s with clients, Axe information or building orders). Generally, bot developers are experts within their specific Information Systems, rather than Symphony specialists. The learning curve is steep for these people to get started on the Symphony platform.
Building software on the Symphony platform is made harder by the lack of availability of high-quality software libraries to use to do this. Although there are existing libraries for building bots on the Symphony platform in various languages, these are all found wanting and contain only basic functionality. Specifically, concerns such as: identity management, integration testing, circle-of-trust, are not well supported. Within the Java ecosystem there are multiple low-level “client” implementations, which are in various ways flawed, and in any case don’t cover higher level functionality.
Proposed Solution
Find a best-of-breed approach to the Java software stack that can be recommended to all Java Symphony developers, rather than leaving them to find the appropriate libraries on their own.
Current State
1. Symphony have various libraries covering some parts of the functionality required. A lot of this is not open-sourced (AFAICT)
2. Finos also have some (now archived) software for low-level API connectivity to Symphony.
3. Deutsche Bank has built a suite of Symphony Java libraries from the ground up which interoperate together, are well documented and field-tested within the bank. This covers the following:
Bindings: Java-To-Symphony REST API Layer which is code-generated and matches the published Symphony APIs exactly. (This broadly matches the functionality in 2 above, although is nearly all code-generated using Swagger rather than hand-maintained).
Identity: Manages Symphony identities and allows tests to connect to Symphony without checking secrets into the repository
Entity JSON: Provides Serialization & Deserialization of Symphony’s JSON Format
Spring Boot API Starter: Hook up Symphony APIs using Spring’s Auto-wiring, and check health using Actuator. Allows bots to be written in just a few lines of code.
Spring Boot App Starter: Build Symphony circle-of-trust applications in Spring
Shared Stream: Allows bots to handle failover when working in a cluster
FIX JSON: Allows you to send FIX messages via Symphony
In addition we have further pieces of software covering Kore-AI integration and Java-based workflow which will integrate with this stack, and will be open-sourcing these soon.
Existing Materials
All existing DB-open-sourced Symphony Java code is to be found here: https://github.com/deutschebank/symphony-java-client-parent
Maintainers
(Lead) Robert.Moffat@db.com - robmoffat
Abhishek.Sinha@db.com - abhishekspage
Suresh.Rupnar@db.com - sureshrupnar
Contributors
Vladimir.Parnashvili@db.com - vladimirpar
Ivan.Rodriguez@db.com - iromu