diff --git a/osbase/logtree/journal_entry.go b/osbase/logtree/journal_entry.go
index 1f10c0f..c553ac8 100644
--- a/osbase/logtree/journal_entry.go
+++ b/osbase/logtree/journal_entry.go
@@ -45,6 +45,9 @@
 	seqLocal uint64
 }
 
+// defaultDNQuota defines how many messages should be stored per DN.
+const defaultDNQuota = 8192
+
 // external returns a LogEntry object for this entry, ie. the public version of
 // this object, without fields relating to the parent journal, linked lists,
 // sequences, etc. These objects are visible to library consumers.
@@ -119,7 +122,7 @@
 
 	// Create quota if necessary.
 	if _, ok := j.quota[e.origin]; !ok {
-		j.quota[e.origin] = &quota{origin: e.origin, max: 8192}
+		j.quota[e.origin] = &quota{origin: e.origin, max: defaultDNQuota}
 	}
 
 	// Insert at head in local linked list, calculate seqLocal, set pointers.
diff --git a/osbase/logtree/journal_test.go b/osbase/logtree/journal_test.go
index 23aaeae..826f2e7 100644
--- a/osbase/logtree/journal_test.go
+++ b/osbase/logtree/journal_test.go
@@ -34,11 +34,11 @@
 	}
 
 	entries := j.getEntries(BacklogAllAvailable, "main")
-	if want, got := 8192, len(entries); want != got {
+	if want, got := defaultDNQuota, len(entries); want != got {
 		t.Fatalf("wanted %d entries, got %d", want, got)
 	}
 	for i, entry := range entries {
-		want := fmt.Sprintf("test %d", (9000-8192)+i)
+		want := fmt.Sprintf("test %d", (9000-defaultDNQuota)+i)
 		got := strings.Join(entry.leveled.messages, "\n")
 		if want != got {
 			t.Fatalf("wanted entry %q, got %q", want, got)
@@ -63,7 +63,7 @@
 	}
 
 	entries := j.getEntries(BacklogAllAvailable, "chatty")
-	if want, got := 8192, len(entries); want != got {
+	if want, got := defaultDNQuota, len(entries); want != got {
 		t.Fatalf("wanted %d chatty entries, got %d", want, got)
 	}
 	entries = j.getEntries(BacklogAllAvailable, "solemn")
@@ -76,7 +76,7 @@
 	}
 
 	entries = j.scanEntries(BacklogAllAvailable, filterAll())
-	if want, got := 8192+900, len(entries); want != got {
+	if want, got := defaultDNQuota+900, len(entries); want != got {
 		t.Fatalf("wanted %d total entries, got %d", want, got)
 	}
 	setMessages := make(map[string]bool)
@@ -90,8 +90,8 @@
 			t.Fatalf("could not find entry %q in journal", want)
 		}
 	}
-	for i := 0; i < 8192; i += 1 {
-		want := fmt.Sprintf("chatty %d", i+(9000-8192))
+	for i := 0; i < defaultDNQuota; i += 1 {
+		want := fmt.Sprintf("chatty %d", i+(9000-defaultDNQuota))
 		if !setMessages[want] {
 			t.Fatalf("could not find entry %q in journal", want)
 		}
