{"id":4866,"date":"2017-05-01T23:10:05","date_gmt":"2017-05-02T03:10:05","guid":{"rendered":"http:\/\/blogs.library.duke.edu\/bitstreams\/?p=4866"},"modified":"2017-05-01T23:10:05","modified_gmt":"2017-05-02T03:10:05","slug":"tough-nut-crack-developing-digital-repositories","status":"publish","type":"post","link":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/","title":{"rendered":"A Tough Nut to Crack: Developing Digital Repositories"},"content":{"rendered":"<p>Folks, developing digital repositories is hard. \u00a0There are so many different layers of complexity built into the stack, compounded by the unique variety of end-users, or stakeholders, that we serve.<\/p>\n<p>Consider the breadth of this work:<\/p>\n<p>Starting at the bottom of the stack, you have our Preservation layer. \u00a0This is where we capture your bits, and ensure the long-term preservation of your digital assets. \u00a0But it goes well beyond just logging a single record in a database. \u00a0It involves capturing the data stream, writing that file and all associated files (metadata) to storage, replicating the data to various geographically dispersed servers, validating the ingest, logging the validation, ensuring successful recovery of replicated assets, and more.<\/p>\n<p>All of that comes post-ingest. \u00a0I&#8217;ll not even belabor the complexities of data modeling and ingest here, but you get the idea&#8230; it&#8217;s hairy stuff. \u00a0Receiving and massaging a highly diverse body of data into a package appropriate for homogeneous ingest is a monumental effort in normalization.<\/p>\n<p>Move up the stack into our Curation layer. \u00a0Currently we have a single administrative application that facilitates management and curatorial activities of our digital objects following ingest. \u00a0Roles or access controls can be managed here, in addition to various types of metadata (description about the item), etc. \u00a0There are a variety of other applications that are managed at this layer, which interact with, and store, various values that fuel display and functionality within the user interface. \u00a0This layer is quickly evolving in a way that necessitates diversification. \u00a0We have found that a single monolithic application is not a one-size-fits-all solution for our stakeholders who are in the business of data production\/curation; it is at this layer where we are getting increasingly more pressure to integrate and inter-operate with a myriad of other tools and platforms for resource\/data management. \u00a0This is tricky business as each of these tools handle data in different ways.<\/p>\n<p>Finally, we have the Discovery layer. \u00a0The user interface. \u00a0This is what the public sees and consumes. \u00a0It&#8217;s where access to ingested materials occurs. \u00a0It is itself an application requiring significant custom development to meet the needs of various programs and collections of materials. \u00a0It is tightly coupled with the Curation layer, and therefore highly complex and customized to meet the needs of different focal areas. \u00a0Search functionality is yet another piece of complexity that requires maintenance and customization of a central index. \u00a0Nothing is OOTB (out of the box). \u00a0Everything requires configuration and customization.<\/p>\n<p>And ALL of this- all of it- is inter-related. \u00a0Highly coupled and complex. \u00a0Few things reap easy wins, and often our work challenges foundational assumptions that have come well before. \u00a0It&#8217;s an exercise in balancing technical debt and moving forward without re-inventing the wheel every six months.<\/p>\n<p>What I have presented here is a simplistic view of our software eco-system. \u00a0It&#8217;s just a snapshot of the various puzzle pieces that\u00a0support the operation of a production repository. \u00a0In general, digital repositories are still fairly new on the scene. \u00a0No one has them figured out entirely and everyone does them a little bit differently. \u00a0There&#8217;s a strength to that which manifests in diverse platforms and a breadth of development possibilities. \u00a0There&#8217;s a weakness to it because there is no cookie-cutter approach that defines an easy path forward.<\/p>\n<p>So it&#8217;s an exercise in evolution. \u00a0In iteration. \u00a0In patience. \u00a0In requirements definition. \u00a0We&#8217;re not going to always get it right, and our efforts will largely take a bit of time and experimentation, but we&#8217;re constantly working to improve, to enhance, and to mature our repository platform to meet the growing and evolving needs of our University.<\/p>\n<p>So, here&#8217;s to many years of hard work ahead! \u00a0And many successful collaborations with our Duke community to realize our repository&#8217;s future. \u00a0We&#8217;re ready if you are!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Folks, developing digital repositories is hard. \u00a0There are so many different layers of complexity built into the stack, compounded by the unique variety of end-users, or stakeholders, that we serve. Consider the breadth of this work: Starting at the bottom of the stack, you have our Preservation layer. \u00a0This is where we capture your bits, &hellip; <a href=\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">A Tough Nut to Crack: Developing Digital Repositories<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":251,"featured_media":4871,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4866","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>A Tough Nut to Crack: Developing Digital Repositories - Bitstreams: The Digital Collections Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Tough Nut to Crack: Developing Digital Repositories - Bitstreams: The Digital Collections Blog\" \/>\n<meta property=\"og:description\" content=\"Folks, developing digital repositories is hard. \u00a0There are so many different layers of complexity built into the stack, compounded by the unique variety of end-users, or stakeholders, that we serve. Consider the breadth of this work: Starting at the bottom of the stack, you have our Preservation layer. \u00a0This is where we capture your bits, &hellip; Continue reading A Tough Nut to Crack: Developing Digital Repositories &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/\" \/>\n<meta property=\"og:site_name\" content=\"Bitstreams: The Digital Collections Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dukedigitalcoll\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-02T03:10:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2017\/05\/SLM0369.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3084\" \/>\n\t<meta property=\"og:image:height\" content=\"2085\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ginny Boyer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dukedigitalcoll\" \/>\n<meta name=\"twitter:site\" content=\"@dukedigitalcoll\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ginny Boyer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/\"},\"author\":{\"name\":\"Ginny Boyer\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/2f8cfa79de53061013648ae12cad32d2\"},\"headline\":\"A Tough Nut to Crack: Developing Digital Repositories\",\"datePublished\":\"2017-05-02T03:10:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/\"},\"wordCount\":652,\"commentCount\":2,\"image\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2017\/05\/SLM0369.jpg\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/\",\"url\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/\",\"name\":\"A Tough Nut to Crack: Developing Digital Repositories - Bitstreams: The Digital Collections Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2017\/05\/SLM0369.jpg\",\"datePublished\":\"2017-05-02T03:10:05+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/2f8cfa79de53061013648ae12cad32d2\"},\"breadcrumb\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#primaryimage\",\"url\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2017\/05\/SLM0369.jpg\",\"contentUrl\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2017\/05\/SLM0369.jpg\",\"width\":3084,\"height\":2085},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Tough Nut to Crack: Developing Digital Repositories\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#website\",\"url\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/\",\"name\":\"Bitstreams: The Digital Collections Blog\",\"description\":\"Notes from the Duke University Libraries Digital Projects Team\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/2f8cfa79de53061013648ae12cad32d2\",\"name\":\"Ginny Boyer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/74ffc0b5628d54bcd9da9a23bab150483868acfd9709f26b7b1b3f25eba6011d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/74ffc0b5628d54bcd9da9a23bab150483868acfd9709f26b7b1b3f25eba6011d?s=96&d=mm&r=g\",\"caption\":\"Ginny Boyer\"},\"url\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/author\/gb120duke-edu\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Tough Nut to Crack: Developing Digital Repositories - Bitstreams: The Digital Collections Blog","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:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/","og_locale":"en_US","og_type":"article","og_title":"A Tough Nut to Crack: Developing Digital Repositories - Bitstreams: The Digital Collections Blog","og_description":"Folks, developing digital repositories is hard. \u00a0There are so many different layers of complexity built into the stack, compounded by the unique variety of end-users, or stakeholders, that we serve. Consider the breadth of this work: Starting at the bottom of the stack, you have our Preservation layer. \u00a0This is where we capture your bits, &hellip; Continue reading A Tough Nut to Crack: Developing Digital Repositories &rarr;","og_url":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/","og_site_name":"Bitstreams: The Digital Collections Blog","article_publisher":"https:\/\/www.facebook.com\/dukedigitalcoll","article_published_time":"2017-05-02T03:10:05+00:00","og_image":[{"width":3084,"height":2085,"url":"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2017\/05\/SLM0369.jpg","type":"image\/jpeg"}],"author":"Ginny Boyer","twitter_card":"summary_large_image","twitter_creator":"@dukedigitalcoll","twitter_site":"@dukedigitalcoll","twitter_misc":{"Written by":"Ginny Boyer","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#article","isPartOf":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/"},"author":{"name":"Ginny Boyer","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/2f8cfa79de53061013648ae12cad32d2"},"headline":"A Tough Nut to Crack: Developing Digital Repositories","datePublished":"2017-05-02T03:10:05+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/"},"wordCount":652,"commentCount":2,"image":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2017\/05\/SLM0369.jpg","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/","url":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/","name":"A Tough Nut to Crack: Developing Digital Repositories - Bitstreams: The Digital Collections Blog","isPartOf":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#primaryimage"},"image":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2017\/05\/SLM0369.jpg","datePublished":"2017-05-02T03:10:05+00:00","author":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/2f8cfa79de53061013648ae12cad32d2"},"breadcrumb":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#primaryimage","url":"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2017\/05\/SLM0369.jpg","contentUrl":"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2017\/05\/SLM0369.jpg","width":3084,"height":2085},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2017\/05\/01\/tough-nut-crack-developing-digital-repositories\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.library.duke.edu\/bitstreams\/"},{"@type":"ListItem","position":2,"name":"A Tough Nut to Crack: Developing Digital Repositories"}]},{"@type":"WebSite","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#website","url":"https:\/\/blogs.library.duke.edu\/bitstreams\/","name":"Bitstreams: The Digital Collections Blog","description":"Notes from the Duke University Libraries Digital Projects Team","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.library.duke.edu\/bitstreams\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/2f8cfa79de53061013648ae12cad32d2","name":"Ginny Boyer","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/74ffc0b5628d54bcd9da9a23bab150483868acfd9709f26b7b1b3f25eba6011d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/74ffc0b5628d54bcd9da9a23bab150483868acfd9709f26b7b1b3f25eba6011d?s=96&d=mm&r=g","caption":"Ginny Boyer"},"url":"https:\/\/blogs.library.duke.edu\/bitstreams\/author\/gb120duke-edu\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/posts\/4866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/users\/251"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/comments?post=4866"}],"version-history":[{"count":5,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/posts\/4866\/revisions"}],"predecessor-version":[{"id":4872,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/posts\/4866\/revisions\/4872"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/media\/4871"}],"wp:attachment":[{"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/media?parent=4866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/categories?post=4866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/tags?post=4866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}