Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 6,128 | Comments: 45,551

filter by tags archive

MactoAnd it goes on your permanent record, too!

time to read 2 min | 367 words

According to the way the blog posts are currently scheduled, I just spent about a month doing nothing but talking about stuff that has very little to do with the implementation, code or even just rough architecture. I bet you thought that you were going to see some code, diagrams and something real that you can sink your teeth into…

Well, not so fast, this is supposed to be a DDD sample, as such, the first and foremost topic that discuss is the actual domain. I think that this is likely to be the last of the pure domain posts, and I’ll get started with the actual design stuff shortly. But before we do that, we need to learn about one last aspect of the domain, the Inmate’s Record.

So far, we have dealt mostly with the Dossier, the legal stuff that means that we can keep an Inmate in lawful incarceration, but in addition to that, we also have the Inmate’s Record. The Record is basically all the interesting things that the prison stuff needs to know about the Inmate. Those things range from cliff notes version that you need to look at before you interact with an Inmate to a detailed record of his stay in prison.

The cliff note version is usually used in briefing about the guy, “Look, we have to take him to his court date, you need to remember, the guy is on suicide watch, so never leave him alone…”. In the cliff note version, we highly important aspects of the Record. Suicidal, Flighty (tried / planning to escape), Avoid Putting With Inmate X, etc.

The Full Record is used for things like intelligence reviews, interviews, parole hearings, and in any case where there is a need to learn a lot about the Inmate.

What goes into the Record?

  • Guards’ reports
  • Intelligence gathered
  • Disciplinary actions

And probably a whole lot more that I am forgetting. It is important to note the difference between the Dossier, which is usually handled by Legal and the Record, which is usually handled by Staff. They both refer to the same Inmate, but they are usually handled, maintained and used completely separately.

More posts in "Macto" series:

  1. (17 Aug 2011) Looking at warrants
  2. (15 Aug 2011) Talking to nasty people
  3. (11 Aug 2011) Counting is The Holy Grail
  4. (10 Aug 2011) Getting Started, you never forget your first Inmate
  5. (08 Aug 2011) The Main Screen
  6. (03 Aug 2011) Warrants are for fools
  7. (01 Aug 2011) Non functional concerns, you are a legal system
  8. (28 Jul 2011) And it goes on your permanent record, too!
  9. (27 Jul 2011) Once more from the top, I swear I had a few more over there
  10. (26 Jul 2011) Day to day life
  11. (22 Jul 2011) Where is the Inmate anyway?
  12. (19 Jul 2011) Let’s CREATE an Inmate
  13. (12 Jul 2011) Creating The Model
  14. (05 Jul 2011) The boundaries of a prison
  15. (25 Jul 2009) An end to end sample


Paul Cox

How do you determine when one combined system becomes two that share information? For instance, the legal system seems to have 2 requirements.

1) Do we have legal authority to incarcerate an inmate? 2) Are all incarcerated inmates accounted for?

We can do this system dealing only with the inmate's current dossier and we do not really care how many other dossiers refer to this inmate. This system does not need to be cross-prison because we do not care (at least operationally), how a previous prison handled this for a previous incarceration.

However for at least parts of the inmate's record, it seems important to share this information between prisons/government/military and that the record does correlate with a specific individual.

Ayende Rahien

Paul, You can't really share that information with other prison. Or, to be rather more exact, you are already sharing this, by passing them the paper Dossier. There are many organizations that run a prison, Military, Police, Prison Service, Border Control, etc. Hell, in the military alone there are usually at least two different types of prisons, with totally different systems. You can't share the Dossier between everyone because they are completely different systems, requirements, change times, etc.


Do you have more info about:

Guards’ reports Intelligence gathered Disciplinary actions

What sort of information do we need to store about each? Are these pretty much standard who, when, what and where? I assume they are stored in the record.

Ayende Rahien

Those are pretty much just a bunch of text and maybe some pics. Right now we are talking about hand written reports.

Adrian Russell

So who is the customer? 1. Is it the Prison Commander? Who is responsible for one prison? 2. The Military? Who are responsible for multiple prisons? 3. Or Hibernating Rhinos? Purveyor of fine off the shelf incarceration tracking solutions.

From the previous posts it sounds like either 1 or 3.

In this case, might not really be important, but it does impact how you would think about the solution and how you would drive out the non-obvious functional needs.

Ayende Rahien

Adrian, I am thinking here as the prison commander.

Comment preview

Comments have been closed on this topic.


  1. The worker pattern - 6 hours from now

There are posts all the way to May 30, 2016


  1. The design of RavenDB 4.0 (14):
    26 May 2016 - The client side
  2. RavenDB 3.5 whirl wind tour (14):
    25 May 2016 - Got anything to declare, ya smuggler?
  3. Tasks for the new comer (2):
    15 Apr 2016 - Quartz.NET with RavenDB
  4. Code through the looking glass (5):
    18 Mar 2016 - And a linear search to rule them
  5. Find the bug (8):
    29 Feb 2016 - When you can't rely on your own identity
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats