Giter VIP home page Giter VIP logo

archived-geh-post-office's People

Contributors

bjarkemeier avatar defectiveai avatar dependabot[bot] avatar djorgensendk avatar dstenroejl avatar erduna avatar firestarjes avatar hsvig avatar kerbou avatar korgath avatar kristianschneider avatar lasrinnil avatar mbusk88 avatar michaelmajgaard avatar prtandrup avatar renetnielsen avatar sondergaard avatar x-platformcoder avatar xnetsrak avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

tpberntsen

archived-geh-post-office's Issues

CosmosDataAvailableStore error handling

Vi forventer der kommer et idempodency check inden rammer PO. BLOCKED.

In some cases exceptions are thrown, and in other a bool, indicating success or failure, is returned.
This should be streamlined.
The bool result is returned all the way up to the DataAvailableInbox function and then discarded.

Undersøg problemet hvor der gemmes korrekt i idempotency men fejler ved DA save. Hvad kan der gøres, exceptions eller retry, deadletter ?

Data available-notification from sub domain

As Post Office I want to receive a notification about available data so that I can work with the data.

  • Servicebus with a queue. (1 day)
  • Azure function to handle messages on queue. (1 day)
  • Test. (1 day)
  • Apply Mediator

When a commit is done and code sent to repo, you need to document.

Read new data or old data in Peek()

  • Should we send new data or old data / has Dequeue() been called since last Peek()?

  • Do we have data from previous Peek

  • If yes return data

  • If no send data request to sub domain

  • Test

  • Implementing use of Azure Table Storage

Database design

As a DB I want to be able to store data available-messages in a structured and efficient way.

  • Architecture/design. (1 day)
  • Create CosmosDB. (0.5 day)
  • Test. (??)
  • Documentation. (0.5 day)

Add content to Post Office repo

Add content to domain road map (currently planned and perhaps future work if it makes sense).

If nothing is planned, use this text:
"No work planned in current program increment."

Setup base project

We need to setup the base solution for the post office to run from.
This includes

  • dotnet solution
  • Readme
  • editoconfigs

Rename IDocumentStore

Rename IDocumentStore to something that doesn't describe the underlying DB tech e.g. Repository

Add docs file and update structure

Add the following files in root with reference to main repo docs:

  • COMMUNITY.md
  • CONTRIBUTING.md
  • SECURITY.md

Add docs folder in root and add the following files:

  • code-of-conduct.md
  • getting-started.md
  • non-functional-requirements.md
  • test.md

Peek() - RequestDataset

  • Request dataset from sub domain.

  • Receive path to data.

  • Implementation

  • Session id

  • Architecture

  • Test

  • On failure - handling and logging (DatasetNotFound, DataSetNotAvailable, InternalServiceError)

Refactor Configuration in solution

Look into MS' IConfiguration.

Create and register config objects in ServiceCollectionExtensions, and inject these where needed instead of using Environment.GetEnvironmentVariable() directly.

Suggested config objects:

  • CosmosConfig
  • ServiceBusConfig

Create inbound api

We need an api that exposes an endpoint that gives outside domains the possibility to communicate with the post office.

To grpc or not to grpc

Support multiple formats in the outbound postoffice

Is your feature request related to a problem? Please describe.

We need to be able to support multiple outbound formats. EBIX, CIM and so on.
To do that we will expand the post office with the concept of schemas.

Describe the solution you'd like.

We will extend the function that peeks with the following functionallity.

  1. It will fetch a bundle from cosmos
  2. Take the type and version from the document, and combine that with the query parameter format
  3. Combine those and look in the schemas storage for any schemas following the type type/format/version
  4. Map the contents of messages into that format, and content type the query parameter content-type
  5. Return the message

Integration test DataAvailable

Change integration test for DataAvailable so we use a Cosmos Database and not Moq.
Test that a DataAvailable is save correctly to database.

Questions

  • What if a DataAvailable request, from servicebus, fails in validation in PO ? should we notify sub-PO ?
  • How do we completly upgrade to .net 5 with isolated functions ?
  • Database - should we have 2 cosmos, one for dequeued items and one for active
  • Peek Architechture
  • How to test, do we used squadron? - cosmos ?
  • Which format will data in BlobStorage have? Do sub domains save data as CIM XML/EbiX or do PO need to do this?
  • How should we calculate priority and find the data we should request for at subdomain, when filtering data from dataavailable cosmos ? And how many records should we look up ?
  • Skal vores GetMessageHandler returnere en "string" der repræsenterer indholdet, eller skal den returnere et Objekt der indeholder information omkring processen, altså om kaldet er gået godt ? Det er mere et spørgsmål om vi skal kaste exceptions når data f.eks. ikke er klart endnu. vi kunne sende en god besked tilbage også må vores function stå for at levere korrekt http fejl koder.
  • Is recipient GLN or another supplier identification?
  • Is messageType, pageSize supplied by caller when peeking?

Improve test coverage

The PO solution has not been sufficiently covered with tests. Improve test coverage.

Receive Peek() from actor

  • Recieve call from actor.
  • Parse data to identify caller.
  • Add validation to MediatR/input from market operator.
  • Test.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.