{"id":1354,"date":"2023-07-12T00:51:26","date_gmt":"2023-07-11T23:51:26","guid":{"rendered":"https:\/\/exponentialdecay.co.uk\/blog\/?p=1354"},"modified":"2025-12-01T16:59:55","modified_gmt":"2025-12-01T16:59:55","slug":"published-premis-events-through-an-event-sourced-lens","status":"publish","type":"post","link":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/","title":{"rendered":"Published: PREMIS Events Through an Event-sourced Lens"},"content":{"rendered":"<p>Not long after\u00a0my first <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/published-fractal-in-detail-what-information-is-in-a-file-format-identification-report\/\" target=\"_blank\" rel=\"noopener\">Code4Lib article<\/a> I had another idea to run by the team there, and elected to see if my paper looking at events in the PREMIS metadata standard would be of interest to them and the readership.<\/p>\n<p>My paper <a href=\"https:\/\/journal.code4lib.org\/articles\/17264\" target=\"_blank\" rel=\"noopener\">PREMIS Events Through an Event-sourced Lens<\/a> was published April this year.<\/p>\n<p>I take a look at the content of this paper below and plug a few gaps that I have been thinking about since its publication.<\/p>\n<p><!--more--><\/p>\n<p>The prologue to <em>PREMIS Events Through an Event-sourced Lens<\/em> probably describes it best:<\/p>\n<blockquote><p>The PREMIS metadata standard is widely adopted in the digital preservation community. Repository software often include fully compliant implementations or assert some level of conformance. Within PREMIS we have four semantic units, but \u201cEvents\u201d, the topic of this paper, are particularly interesting as they describe \u201cactions performed within or outside the repository that affects its capability to preserve Objects over the long term.\u201d Events can help us to observe interactions with digital objects and understand where and when something may have gone wrong with them. Events in PREMIS, however, are slightly different to events in software development paradigms, specifically event driven software development \u2013 though similar, the design of PREMIS event logs does not promote their \u201cbeing complete\u201d nor their consumption and reuse; and so, learning from logs in event driven software development, may help us to simplify the PREMIS data model; plug identified gaps in implementations; and improve the ability to migrate digital content in future repositories.<\/p><\/blockquote>\n<p>It was inspired by my interest in event-driven software practices. While it&#8217;s not a paradigm I have had the opportunity to implement yet, it is a paradigm I have studied in <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/my-first-weeks-at-artefactual-systems-inc\/\" target=\"_blank\" rel=\"noopener\">previous roles<\/a> and still consider a potentially important way of describing the life of digital objects.<\/p>\n<blockquote><p>Event sourcing is a software development methodology that provides a mechanism of persisting data that focuses on recording what has happened rather than how things are; rather than storing current state, event sourcing maintains \u201cstate mutations\u201d as separate records called \u201cevents\u201d &#8212;\u00a0 Alexey Zimarev <a href=\"https:\/\/www.eventstore.com\/blog\/what-is-event-sourcing\" target=\"_blank\" rel=\"noopener\">https:\/\/www.eventstore.com\/blog\/what-is-event-sourcing<\/a><\/p><\/blockquote>\n<p>Events in the software development methodology are stored on a rolling basis and events are first class citizens of the systems that implement them. Events only describe what has happened so analyzing impact is usually done by processing the events at a later date, e.g. to understand the number of widgets in stock on a sales platform you would process all the events one by one, and increment or decrement the total number for each replenishing or sales event that you come across.<\/p>\n<p>PREMIS (events) sit somewhere between the event-sourced paradigm and CRUD (Create, Read, Update, Delete). They feel much more static in the systems that use them and their representations are also fairly static (XML is about as structurally fixed as you can imagine). &#8220;Events&#8221; have to be consciously written into processing routines, and deciding when to output an event is an act of design (and requires its existence in the PREMIS data dictionary). PREMIS tends to be stored and is rarely looked at after a file has been processed into some sort of archival package.<\/p>\n<p>With a few changes to how the PREMIS standard is implemented I feel it would be possible to make the standard much more dynamic.<\/p>\n<p>The paper was fun to think about and write, and I hope you all get the opportunity to read through it.<\/p>\n<p>There hasn&#8217;t been a huge wave of comment on the paper yet, and I&#8217;d love to see and engage in a bit more.<\/p>\n<p>The paper is the result of a good number of years now looking at preservation metadata and how it is recorded and trying to find ways of <a href=\"https:\/\/asciinema.org\/a\/174554\" target=\"_blank\" rel=\"noopener\">simplifying it<\/a> to provide more incentives to make it more complete, and to find compelling ways of consuming and representing it to the end user.<\/p>\n<p>While some of the suggestions in the paper require some quite big changes there are also some suggestions that I think help modernize how PREMIS achieves its goal &#8211; the discussion around conformance, for example, was an important one for me to reflect on. Conformance in PREMIS means capturing event data, but at the highest level of conformance this data needs to be in a PREMIS &#8220;schema&#8221; that doesn&#8217;t require further &#8220;mapping or conversion&#8221;.<\/p>\n<p>In a world where data can be represented many different ways and indeed, many developers want to be able to access data in many different representations, aligning structure with conformance is a mistake. Emphasis should be placed on incentivising collecting and storing event data and ensuring data can be output in a PREMIS compatible way, but not forcing the PREMIS representation to exist. This at the very least doubles the data footprint, or doubles the processing efforts if developers want to convert PREMIS into something else.<\/p>\n<p>A similar description exists in a paper by Rob Sharpe of Tessella from 2013: <a href=\"https:\/\/www.dpconline.org\/docs\/miscellaneous\/events\/850-premismets-sharpe\/file\" target=\"_blank\" rel=\"noopener\">https:\/\/www.dpconline.org\/docs\/miscellaneous\/events\/850-premismets-sharpe\/file<\/a> and I think we&#8217;re fairly aligned, but I would go further and not impose PREMIS at the database schema level at all and instead create a logical schema to be applied when data is output &#8212; the same way content negotiation is used in linked open data. You could imagine a cURL request for all information about a collection &#8216;X&#8217;:<\/p>\n<pre>curl -H 'Accept: application\/premis+json; \\\r\n   profile=\"https:\/\/www.loc.gov\/standards\/premis\/\"' \\\r\n   https:\/\/archive.example.com\/collection\/X\/detail\r\n<\/pre>\n<p>I want to thank Rob for his 2013 thoughts as they have always been in my mind when thinking about the different repository solutions I have worked on.<\/p>\n<p>I am sure there are some opinions about my Code4Lib article on PREMIS events through and event sourced lens. I&#8217;d love to hear them! Part of my process of improving the solutions I work on is putting this type of publication out there and listening to and learning from the comments to understand what type of course corrections I may need to make.<\/p>\n<p>Read more in Code4Lib issue 56: <a href=\"https:\/\/journal.code4lib.org\/articles\/17264\" target=\"_blank\" rel=\"noopener\">https:\/\/journal.code4lib.org\/articles\/17264<\/a><\/p>\n<h2>Postscript<\/h2>\n<p>There&#8217;s one challenge that the paper doesn&#8217;t make explicit, and that is the question, <em>&#8220;how dynamic is digital preservation?&#8221;<\/em> I attempt to describe a very dynamic approach to maintenance of digital objects using event sourcing and the PREMIS model. I look at events as living, constantly happening things but what if our field is less dynamic than that? It may very well be, but then, I don&#8217;t think that conversation is being had anywhere. If digital preservation is not a dynamic field then I think we can start to look at simplifying repository software and our records about digital objects in different ways. That&#8217;s another conversation I&#8217;d love to have somewhere down the line.<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1354\" class=\"pvc_stats total_only  \" data-element-id=\"1354\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Not long after\u00a0my first <a href=\"https:\/\/exponentialdecay.co.uk\/blog\/published-fractal-in-detail-what-information-is-in-a-file-format-identification-report\/\" target=\"_blank\" rel=\"noopener\">Code4Lib article<\/a> I had another idea to run by the team there, and elected to see if my paper looking at events in the PREMIS metadata standard would be of interest to them and the readership.<\/p>\n<p>My paper <a href=\"https:\/\/journal.code4lib.org\/articles\/17264\" target=\"_blank\" rel=\"noopener\">PREMIS Events Through an Event-sourced Lens<\/a> was published April this year.<\/p>\n<p>I take a look at the content of this paper below and plug a few gaps that I have been thinking about since its publication.<\/p>\n<div class=\"link-more\"><a href=\"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &ldquo;Published: PREMIS Events Through an Event-sourced Lens&rdquo;<\/span>&hellip;<\/a><\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1354\" class=\"pvc_stats total_only  \" data-element-id=\"1354\" style=\"\"><i class=\"pvc-stats-icon small\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":1345,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[86,3,168],"tags":[59,183,368,147,103,71,367,186,45,58,97],"class_list":["post-1354","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-archives","category-digital-preservation","category-publications","tag-archives","tag-code4lib","tag-design-patterns","tag-digipres","tag-digital-archiving","tag-digital-preservation","tag-event-sourcing","tag-premis","tag-publications","tag-software-architecture","tag-software-development","entry"],"a3_pvc":{"activated":true,"total_views":203,"today_views":0},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Published: PREMIS Events Through an Event-sourced Lens - ross spencer :: exponentialdecay.digipres :: blog<\/title>\n<meta name=\"description\" content=\"Can we make it easier to design digital preservation platforms and track preservation-altering events using event-sourcing?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Published: PREMIS Events Through an Event-sourced Lens - ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"og:description\" content=\"Can we make it easier to design digital preservation platforms and track preservation-altering events using event-sourcing?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/\" \/>\n<meta property=\"og:site_name\" content=\"ross spencer :: exponentialdecay.digipres :: blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-11T23:51:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-01T16:59:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/premis-events.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1258\" \/>\n\t<meta property=\"og:image:height\" content=\"549\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ross Spencer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:site\" content=\"@beet_keeper\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ross Spencer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/\"},\"author\":{\"name\":\"Ross Spencer\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"headline\":\"Published: PREMIS Events Through an Event-sourced Lens\",\"datePublished\":\"2023-07-11T23:51:26+00:00\",\"dateModified\":\"2025-12-01T16:59:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/\"},\"wordCount\":1123,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/premis-events.png\",\"keywords\":[\"Archives\",\"Code4Lib\",\"Design Patterns\",\"digipres\",\"Digital Archiving\",\"Digital Preservation\",\"Event-sourcing\",\"PREMIS\",\"Publications\",\"Software Architecture\",\"Software Development\"],\"articleSection\":[\"Archives\",\"Digital Preservation\",\"Publications\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/\",\"name\":\"Published: PREMIS Events Through an Event-sourced Lens - ross spencer :: exponentialdecay.digipres :: blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/premis-events.png\",\"datePublished\":\"2023-07-11T23:51:26+00:00\",\"dateModified\":\"2025-12-01T16:59:55+00:00\",\"description\":\"Can we make it easier to design digital preservation platforms and track preservation-altering events using event-sourcing?\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/#primaryimage\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/premis-events.png\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/premis-events.png\",\"width\":1258,\"height\":549},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/published-premis-events-through-an-event-sourced-lens\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Published: PREMIS Events Through an Event-sourced Lens\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/\",\"name\":\"ross spencer :: exponentialdecay.digipres :: blog\",\"description\":\"Digital preservation analyst, researcher, and software developer\",\"publisher\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/#\\\/schema\\\/person\\\/4cae0a954400f42b9c1b70c699837716\",\"name\":\"Ross Spencer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"contentUrl\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\",\"width\":2560,\"height\":2560,\"caption\":\"Ross Spencer\"},\"logo\":{\"@id\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/avatar-scaled.png\"},\"description\":\"Digital preservation domain expert and full-stack software developer.\",\"sameAs\":[\"http:\\\/\\\/www.exponentialdecay.co.uk\\\/blog\",\"https:\\\/\\\/www.instagram.com\\\/b33tk33p3r\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ross-spencer-b6b9b758\\\/\",\"https:\\\/\\\/x.com\\\/beet_keeper\"],\"url\":\"https:\\\/\\\/exponentialdecay.co.uk\\\/blog\\\/author\\\/exponentialdecay\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Published: PREMIS Events Through an Event-sourced Lens - ross spencer :: exponentialdecay.digipres :: blog","description":"Can we make it easier to design digital preservation platforms and track preservation-altering events using event-sourcing?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/","og_locale":"en_US","og_type":"article","og_title":"Published: PREMIS Events Through an Event-sourced Lens - ross spencer :: exponentialdecay.digipres :: blog","og_description":"Can we make it easier to design digital preservation platforms and track preservation-altering events using event-sourcing?","og_url":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/","og_site_name":"ross spencer :: exponentialdecay.digipres :: blog","article_published_time":"2023-07-11T23:51:26+00:00","article_modified_time":"2025-12-01T16:59:55+00:00","og_image":[{"width":1258,"height":549,"url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/premis-events.png","type":"image\/png"}],"author":"Ross Spencer","twitter_card":"summary_large_image","twitter_creator":"@beet_keeper","twitter_site":"@beet_keeper","twitter_misc":{"Written by":"Ross Spencer","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/#article","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/"},"author":{"name":"Ross Spencer","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"headline":"Published: PREMIS Events Through an Event-sourced Lens","datePublished":"2023-07-11T23:51:26+00:00","dateModified":"2025-12-01T16:59:55+00:00","mainEntityOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/"},"wordCount":1123,"commentCount":1,"publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/premis-events.png","keywords":["Archives","Code4Lib","Design Patterns","digipres","Digital Archiving","Digital Preservation","Event-sourcing","PREMIS","Publications","Software Architecture","Software Development"],"articleSection":["Archives","Digital Preservation","Publications"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/","url":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/","name":"Published: PREMIS Events Through an Event-sourced Lens - ross spencer :: exponentialdecay.digipres :: blog","isPartOf":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/#primaryimage"},"image":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/#primaryimage"},"thumbnailUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/premis-events.png","datePublished":"2023-07-11T23:51:26+00:00","dateModified":"2025-12-01T16:59:55+00:00","description":"Can we make it easier to design digital preservation platforms and track preservation-altering events using event-sourcing?","breadcrumb":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/#primaryimage","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/premis-events.png","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2023\/07\/premis-events.png","width":1258,"height":549},{"@type":"BreadcrumbList","@id":"https:\/\/exponentialdecay.co.uk\/blog\/published-premis-events-through-an-event-sourced-lens\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/exponentialdecay.co.uk\/blog\/"},{"@type":"ListItem","position":2,"name":"Published: PREMIS Events Through an Event-sourced Lens"}]},{"@type":"WebSite","@id":"https:\/\/exponentialdecay.co.uk\/blog\/#website","url":"https:\/\/exponentialdecay.co.uk\/blog\/","name":"ross spencer :: exponentialdecay.digipres :: blog","description":"Digital preservation analyst, researcher, and software developer","publisher":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/exponentialdecay.co.uk\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/exponentialdecay.co.uk\/blog\/#\/schema\/person\/4cae0a954400f42b9c1b70c699837716","name":"Ross Spencer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","url":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","contentUrl":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png","width":2560,"height":2560,"caption":"Ross Spencer"},"logo":{"@id":"https:\/\/exponentialdecay.co.uk\/blog\/wp-content\/uploads\/2025\/06\/avatar-scaled.png"},"description":"Digital preservation domain expert and full-stack software developer.","sameAs":["http:\/\/www.exponentialdecay.co.uk\/blog","https:\/\/www.instagram.com\/b33tk33p3r\/","https:\/\/www.linkedin.com\/in\/ross-spencer-b6b9b758\/","https:\/\/x.com\/beet_keeper"],"url":"https:\/\/exponentialdecay.co.uk\/blog\/author\/exponentialdecay\/"}]}},"views":1802,"_links":{"self":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1354","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=1354"}],"version-history":[{"count":12,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1354\/revisions"}],"predecessor-version":[{"id":2549,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1354\/revisions\/2549"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media\/1345"}],"wp:attachment":[{"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=1354"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=1354"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/exponentialdecay.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=1354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}