<!-- # Contract Service Reboot Kickstart -->
## Contract Service Reboot

* What's a "Contract Service"?
* Remarks about Ownership
* Next steps for Contract Service evolution
* How do we get there?
* Action Items + Timeline + Q&A
---
## So, what's a "Contract Service"? 🍿
The microservice to **manage legal companies** and **assign roles** corresponding to the type of collaboration they have with FlixBus.
---
### History
- **Feb. - Jun. 2017** → Built by Team Forfiter
- **Jul. 2017 - Jan. 2018** → No Man's Land: partially maintained by original developers
- **Feb. 2018 - Present** → partially maintained by Deathstar
_partially_ = No new features are added and only critical bugs are fixed.
---
### Features
Source: [Acceptance tests](https://git.flix.tech/mfb/contract-service/tree/master/features/Domain)
- Create and modify **legal company**
- Add or remove a **tax id** to a legal company
- Change legal company **registration fields**
- On top of a **legal company** one can:
- Create Concession Owner
- Create Line Contract Partner
- Create Agency Contract Partner
- Create Bus Partner Contract Partner
---
### Features (continued)
- Attaching Agency correlations to an Agency Contract Partner (Legal Contract)
- Attaching Bus Partner(s) to a Bus Partner Contract Partner
- Scheduling of **concession owner for a line** (owned by Network Services)
---
### Dependencies in Legacy :scream:
- Parts of the Line Edit UI in legacy:
- Scheduling of Concession Owners to Line
- Scheduling Contract Partners to Line
- Example: [/source-data/lines/1/edit](https://backend.ru.staging.mfb.io/source-data/lines/1/edit)
---
### Infrastructure
- Currently **hosted on DE cluster → unsupported infrastructure** on which **security** and **stability** can **no longer be guaranteed**
- It is an **impediment from closing DE cluster**. Current costs of operation for DE cluster: **~7500$ per month**.
---
## What do we do with this... THING? :confused:
- We migrate it into FlixOS! :smirk:
- Totally! But on whose FlixOS? :sweat_smile:
---
## Remarks about Ownership
- The main business context Contract Service works with is **legal companies**. Everything else is built on top of this concept.
- Team autonomy → **database must run on the infrastructure of the team which owns the data**. Also, the rest of the resources.
---
## Next Steps In Contract Service Evolution
- Move Contract Service to FlixOS
- Enable data production with Kafka
---
## How do we get there?
- Clarify:
- who the actual owners are
- on which infrastructure this should be deployed
- **Find and support** the actual owners in taking ownership
---
- Access to the Legacy K8s cluster (DE cluster)
- [K8s Access Script](https://git.flix.tech/kubernetes/cluster-access)
- Namespaces: `legal` + `staging-legal`
- Access to code base: [git.flix.tech/mfb/contract-service](https://git.flix.tech/mfb/contract-service)
- Revive `#contract-service` Slack Channel
---
- [Development Environment Howto](https://git.flix.tech/mfb/contract-service/blob/master/doc/development.md)
- [Terraform Blueprints](https://git.flix.tech/deathstar/terraform/flixos/tree/master/tf/lms-api)
---
## Action Items, Timeline, Q&A
{"metaMigratedAt":"2023-06-14T22:52:16.828Z","metaMigratedFrom":"YAML","title":"Contract Service","breaks":true,"slideOptions":"{\"transition\":\"fade\",\"theme\":\"simple\"}","contributors":"[{\"id\":\"04c4d2ca-5f8e-4a20-9132-7b053dd72497\",\"add\":4583,\"del\":1142}]"}