Open sageserpent-open opened 5 years ago
What shall be implemented?
How about a billing system for electricity?
What are the use cases? Who are the actors?
Actors:
Use cases:
This just became an epic.
Note the use-cases above are framed from the perspective of a core service receiving events from elsewhere - for example 'receive meter reading from customer', as opposed to 'customer requests meter reading'. The point is not to provide an end to end system with a web front end, embedded meter software etc, but to maintain a core business domain model.
What would constitute a simple story to yield some provable outcome to a stakeholder?
At very least, the business will need to bring in a customer and show that said customer has a live account on the system, even if they can't be charged for consumption of energy - the business will catch up with them later when billing is brought in.
So, "Set up account for new customer."
A natural follow up would be "Send a bill" / "Provide usage report, outstanding bill and next estimated bill." These two use-cases are related from the perspective of a core system, in the sense that either the actor is a scheduled activity when sending a bill, or is the customer when requesting a report, but in both cases, the core system has to calculate a bill.
How about splitting the latter to give:
The difference between an outstanding bill and an estimated future bill is then simply the query time, they are the same core use-case.
Following on, there is a notion of knowing that a bill has been generated and chasing it up until it is paid - let's have "Send a bill" as a story too.
Let's put this under the package com.sageserpent.protactinium is an additional subproject for now, it will probably be broken out later.
Benchmarks and tests are all very fine, but an example application can show you a better use of time. Ahem.
Rather than tweaking the benchmark further, it would serve as a better indicator of performance and also of the API usability if there were a non-trivial example application driving Plutonium. It doesn't have to be a fully fledged product, but needs to be realistic enough to serve as a template to develop real applications off.