By Developers, For Developers
| PDF Pg | Paper Pg | Type | Description | Fixed on | Comments |
|---|---|---|---|---|---|
| 117 | TYPO | Kindle edition, location 117 of 5116, minor typo: | 2019-07-11 | Thank you! | |
| 13 | ERROR | exports.down = knex => knex.schema.dropTable(‘read_model_pages’) should be exports.down = knex => knex.schema.dropTable(‘videos’) | 2019-07-11 | Thanks for catching this, Steven, and thanks for reading. | |
| 44 | TYPO | Listing numbers that referes to lines in code are wrong. All of them has ‘1’. | 2019-07-11 | Hey Edgar, I'm having trouble finding the listing that you're referring to. The only listing on page 44 (at least in the pdf that I'm looking at) is for video-tutorials/src/message-store/write.js, and I'm not seeing the 1s that you describe. I know what causes that sort of thing to happen, but I don't see it in this listing. \n \nCan you let me know what the surrounding context is? \n \nThanks for reading! | |
| 33 | TYPO | Second paragraph starting with “Now,”, it’s written “Now, ff”. I believe it’s meant to be “Now, if” | 2019-07-11 | ||
| 27 | TYPO | “Simply putting a database table behind an HTTP interface does produce a I feel like the first “does” should be “does not” | 2019-07-11 | Thanks for catching this, and thanks for reading | |
| 42 | SUGGEST | No explanation of the Write Flow In the section “Mapping the Write Flow”, there’s a fairly complex diagram of the flow. Then, in the following paragraphs, there’s text describing what’s seen on the diagram, and nothing else. No justification. No explanation. No rationale. What are we trying to achieve via this algorithm? Not only that — why are we doing it via this specific algorithm? Why pick these steps? What do versions represent? What do commit rows represent? Why use them? As it is, the diagram and the (non)explanation below are borderline useless. Yes, I can read it easily. But I don’t understand how the big picture was built. Is there literally any single person on the planet who would not be familiar with this subject and this algorithm, and would go “a-ha!” after just looking at the picture and reading the description? Would they understand the algorithm deeply? I don’t, after a couple of reads, but I would like to. And I’d like the book to help me out. (note: I’m a senior dev with >10 years of experience) | 2019-08-01 | Bart, \n \nThanks for the submission. If it's leaving you confused, then I want to fix that. Can you help me in understanding where it breaks down? \n \nThe purpose of the commits is described in the previous paragraph, and versions are described under the heading "Fleshing Out Message Structure." Those in conjunction with the diagram, are they still lacking? \n \nSupporting OCC is what leads to the more involved write process, and the diagram and following paragraph are meant to be the bird's eye view of the process. I definitely see the value in some more language explaining that to support OCC, we have to serialize writes to the stream in question though. Would that help in understanding the why? Also, the rest of the chapter is meant to flesh out those details including the reasons behind them. Did the rest not help? If not, any other questions you have would be very helpful. \n \nThanks for reading! | |
| 28 | TYPO | “Subscribers similarly don’t who published the information they consume”. should of course be: “Subscribers similarly don’t know who published the information they consume”. | 2019-07-31 | ||
| 32 | SUGGEST | In the discussion of steams and category streams, I’m struggling to understand how these map to Kafka or Rabbit MQ topics. Obviously we’re not going to configure Kafka with a topic per user. Hopefully this is answered in Chapter 3; if it is perhaps here on page 32 a comment about “we’ll discuss implementation in chapter 3”. | 2019-07-31 | Restored text explaining why not Kafka. It talks about how topics and streams aren't the same thing. | |
| 20 | SUGGEST | First, I really like the book. I like that the idea that a monolith is a data model and not a deployment or code organization strategy (although I think those are still important to building micro-services). I LOVE the idea that micro-services can still be tightly-coupled and are essentially a “distributed monolith”. However, I’m having difficultly with much of the deeper chapters. The architectural diagram on page 20 is very interesting, and it informs the rest of the book. Unfortunately - and ironically - it seems that the “applications” is one large (some might say monolithic ) block of code, and this seems to be borne out throughout the book. Also, the book seems to give very little consideration on how micro-services are deployed (obviously chapter 15 isn’t written yet). I get your knock on Docker (page 24) - but while simply using Docker does not imply I have micro-services, with micro-services I’m going to want Docker and Kubernetes (or Serverless - which isn’t addressed at all). But the deeper into the book I get the more it seems… idealistic. Take chapter 8: Authenticating users. With a large collection of distributed micro-services deployed in Docker/Kubernetes how do I actually authenticate a user? Here I think you’ve tightly coupled the authentication to the ability to deliver a web page. In fact, everything this deep into the book seems tightly coupled: to the website, to each other, and to the database. Again and again the code just `require(‘./services/someService’)` - assuming all the code is deployed together. It also seems that the message store is violating the don’t-share-the-database principal I guess in a book about micro-services I really don’t think you can completely ignore deployment and code organization strategy for most of the book. I think most of the industry is going to argue that part of a good micro-services architecture is addressing Conway’s law, simplifying and isolating component deployment, having independently saleable micro-services, and having a solid code organization strategy. It seems more like a book about CQRS and less a book about micro-services. And according to Martin Fowler: “CQRS should only be used on specific portions of a system (a BoundedContext in DDD lingo) and not the system as a whole.” (www.martinfowler.com/bliki/CQRS.html). I’m sorry if I’m missing something obvious, please help! Thanks, Robert | 2019-08-01 | ||
| 147 | TYPO | Seriously, no. Yes, this is getting repeated ad nauseam, I think that the ad must be an and | 2019-07-31 | "ad nauseam" is the correct phrase. It's Latin. | |
| 115 | ERROR | So far you have only organized a monolithic app, this has anything to do with microservices. | 2019-07-31 | I don't understand this submission. Perhaps because it's all in 1 code base? That's one of the points of the book, that having everything in 1 code base isn't the definition of monolith. | |
| 16 | 6 | ERROR | In the linked code media.pragprog.com/titles/egmicro/code/first-pass/src/env.js The silent option no longer exists. The call now returns an object with an optional error property. (github.com/motdotla/dotenv#config) | 2019-07-31 | Fixed and also updated the package for good measure. |
| 4 | ERROR | the name of the module is: uuid-v4 in the book you spelled: uuid/v4 | 2019-07-31 | I believe the submitter is mistaken here. There is a uuid module and a uuid-v4 module. Within the former, which is what the project uses, there is a v4 folder, and that's what I'm pulling in. It's confusing having the modules with the 2 names like that. | |
| 91 | TYPO | In Ch. 6 - Turning Registration Requests into Commands, the code is as exactly as the same one above in the previous section. Also, when explaining the code, there are lots of 1s. I’m assuming the author is trying to explain different parts of code, but this whole section makes no sense. | 2019-09-13 | Indeed! Thank you for catching this. | |
| 76 | ERROR | all information boxes througout the book are blank. I’m on the (quite old) Sony PRS-T1. since I can’t upload attachments here, this data-url shows a screenshot: data:image/webp;base64,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 | 2019-09-13 | ||
| 77 | ERROR | All diagrams are too wide. This (like information boxes) applies to all diagrams and graphics in the book, including the front cover. Note that all books from pragprog have this issue. I reported it for the first book where this happened, but didn’t bother since until now. Here is a data-url screenshot (hope it works): data:image/webp;base64,UklGRlILAABXRUJQVlA4IEYLAACQYACdASqQAeEAP3GuzF60rb27pvQsY7AuCWduKPMo07A+NUFOLxGziXnnpQA3v+V/rfdC7dWKHra+H/5oMdbzVVdf/vqM/kBBGnmMpm9YKI8djRxEiyn7njYFZbHeTzSB23ItwZxmWdsn6iKYMZDG5IU2UcZhUDsQzzVy2viSv/mWnkY7ySfkibxNbme25IXOD8q0godc0M3lGso+x7eimPHX6GWK1orps4/5ycN9WUt+FYQYMa2ib5Gyn4DzV/uzn3h5Vpa0XzFW3SR2gITc+H5e5tgjUIeNjzHTYlc6Wmq1JrijQXTA+h7UFfZieTgVRRZrngjn96byPkETGv+qgnEeieJiq2WiD92dySn2mDoMsDfYYSbS8tgWldq90Zq1M69jxaiKitPevAn74aKzs6fZhpZdOAMr0HEChU8OQYYJw3wG0sapG//BTZLBH4nJU1QX6w+6UQW4xGUa0+bCB27E8AODdX7tnPYTVFoRdLyA4AAdQ2CdQxABnB0RaPfiJzDXUq4cDdkOkIw3wQ3fxcuu4zAN/PddqgZ77klkmgxZptKXndA5US/qzXNm3NHYtZEy19bO3Lv2iIBDf5kPRFcC3xcFnq/CIJqdkGSnKk9JEOQ1Yhrs6Xwh9tOOJx9/+pT60Wh2PL858o0X2Az3//3z6BqVPfaYcm60WYhIgLe7yDTMfV/vv6bW4EBvlyg9gyY7kQDwENMK+ACHNqN42QJpKlrBMnDB89Czb0ZO0EbI+h1N9HbmUlsBwYZearz9vJk6xeviWFm7GXMp7XPvxS4uUWOEF6QiFoolQ28yKh23TsQduGHOhfMdBX660GzJq23Tr31Em2pL11L9/dM4ioLGUWirGxM+Nc/PhFcbiIhrJ7iXY1MGPVDT5PA7rdDTstA+wzSi63oWNAkk/hOU8opTi+Y//o3dbGBqaTYHWylirlDv185FCD/LYW40OBBPQTzSwNuJXrUxwd5E6c//q3ZFKd7gBc0xtDzbHhJOMWt39W4WvIeSNhpepOD/norVU8gdP3GbBPv3j8AAP7q7Sinlv79/7+GMX9GRdAqSU3pNVKhj/sjSZO9hB/VkNCtGMlIqry5k4B7MTXIKGKvHfRb0l1UJDOCBlLgyPowUqdsbNmvEA3xgBSOmqZOlFuygRmg00oYfCXm3bmQg+mkZtc7f4Hm/00R19qbCyi/YPGz1Q/tosaCjCBnJu5mMXLuG6QNh6zRn6YbEe1gfaooqR0NqvLFCLPn7awvUzt5Uh6aaE3h/gwxUhJPvSJx/6+Puu3wt3albW9V/95KCqPm/Mpwq8TO2SAxsi8xNg1rfPrmqR3+uVIqT1Frcu/qNdxaX3joFmYwpy4dzOltBz+LkEfiDOx7+UCOr9Vg3nataSwtUjwIOhQAAB4hNMHe2G0fKpv1BimlraEPBzgY8R5T3WUz+Um4XtzaCU21+ENHyXgKUBbsFVyx2Loe/z07NIECZqBnu/FH0Du+skDUgD02hRe2I5VFJvlKtBGRgBxkK2xIfWouo0cpE9+GCvace6kIdxGiteakj8ohzxBO4wU9pWDLD3i5FeX2ASDqgKmaQtDtoZFcZ3qypYtKD4v4SY4zp9iDD2v/E1M6BA0IkNCYjkJYMrHj4vIRDDZWJoZmotMeFHRl6j/j/hICjDY0EFVKgNZEmyo5XktBPtLKGavO3ydKzS4CGH8TIwJYpbs3AyGxSwFg8Yyu0szMMpP7N3xH1Qyfs54bNah1Je0qEEN6Sd4uUhEM0ntV437g4i8H5aNpxqofu+/PtZn6Piv1fM2+lLOuJxCtWezxgCyIQBKF2VZ9K07ynSAaVp18pSXynOXGHu1oHfdXK9z7T8THvleVIve7hgaAXxptMYbT02VAGdGJyGhskgc1DSdpURkJNf5L162QWabgaU40YT4IYxTy0cySuVDBccE3VxzOi4v+oC3innfbmRmlUQgbQIfCvAMre69WibLz5Mb6WYJEmPHo3oesQzunVFPgHGO7mcekLVDTJZkOKv8cPkTz1w93D+sHBuXnISmIp/bzswDo3GhrJyutDkodEHG7x6Qos6TnX1gYYRbQdv2Ne88mGiBEDke3Crid4boW0CI/JxXBPyNeFseNt/GAJNZ+KE13mkA3PwuCYm36wWwWKvbcWe/Wv9KNglManDa21ZLPvTl7NJIvYmyCJVdSFRHw6BIeb2P6rA5EAp260qcmmT2yvdcoqPUBpUPLRVlZkrsbMV80EDEFy/46LIc2Jc8DpD78PJwlSuIFehrHGR7kDcWtc6IGU5oh3RFIAX7JGe5nYfysgd640sDWy8qlh+XO1hYenhT4OXxMS+r4/8/lAp3ep4YJaVTGPOtEid7ytvUHIZa+dCTkX6+dnEF8OCJuIKQyzne83wtBmWHmYKBKn5Xpp4ebfz5PyjvE32MpqA+Fx3039vufwHA1ohzdhUe/MaGiofKp+ZWfVFelRi2jVccW60nQ47324ItQYY+6o5+4nrgVieuy5M8o2WKn3glnBxr2iNoeZ3GgPA40Cdtp8Y/4jkPwObi4Td0/QjnEUBPLw9omsDTkFPPh9nwGmwVbJLu7fnfJ/F5fG3XD8Tsq8xXXzCtVXSamzOka8o0SRcohwbmXTrfod02QTS/eMsNVGKWCIFlhl/AqgQLuUkS5z7sH9Fhyb2PZ2aFIM818IFop9ZUUVM6CEROUquz8lDseL5HzUt1RfzFADg3Y168UKoRoBKhCih/lFdpcEsR0bS29CLNsz/kuXM/HmUB1f+vVm9eaLB+7CGxAYbp5QMaxEOh7ZY2bFXP7TzT2MLUIkFu8F5EKiYnlEWtQwnnsWkwgxEJTR5ovgVBs6l+nnocVv2ZI8ZsoiuAMAYAv/Rq2x3N4t8H2xR8Njxmdg4IAapS7/iioR4BcBnhA2YIO7GH88fsIddVQmsyZZJ/DtfHK9QvHxIW8zigrIGM/Wl7au1HHHcuoEd8dqgciu9sxYSVUgPA5wIgvtzkcHs8rR1LbuI/UPOJepvEwBYAkxDfkgFi9dbE+t4YZZCvpKA2dtiKaNJeQqlJRye7x5DobzFazPrjvm27ZScBYw7QFELFI8oatfFUpZ3ERksCBlr7v8ClhXPSjbrF1dGpnpX/5siq6h0VfrY1Ih5w2GcV6DwANJS9+VjHIhOie+w0DsilXZirAr2eqYPz1Yw0vDlh3fqBmhBJGcQ5h8tJNBJJdIhWA5x9Gxv/7MB2SNuF8wYUGjon8vwlF8Zzw7a0pL84ZiukNN4DVTJFZANhERA4471AIdDKkX0VRs6BhNdDDp0Fc2LbsuB+6JHU/92s5ChEfU5JYd2ceSejOJxHRu67dbN1nbtuTWGgZ1+iYC9QFNIzUfREhexQGFcSUO0MorN+TahJ/aIo5SPQRlgqVw+msfax25MH1VoURecLsrm4jDamS3idbKBxBApEvjXTBGy4uT9yM11Izf/7aoAFTWAXOiPzmQ2vXGmZfEpXq9WI76fLNZr/dkWpS+ooDluSl5BpfQ0fUVQTYfcRsWHg6NqCb/Mc4hMQHA5yOMM4KXL9bAl4pTcqbjLSQicUMYAHIUJR1IfQs3pTUhewW4F2tRWusGCOzKvf8Cp8On9H/CZ8kCsC4hTHjmsK854cW4OWhHkzk2Kq0gSEW2WfOP6X9uG9YwTiQe7uP3+8K6LYKNX3DaWs/+apldn787CwYZzGrODg45NSE7OeR/0IsIUuMfRhCWf3mSj2h3nfcyhnX8r3O3iLeD1yT5FG+W0f8bfO2Nm7O898g/EmA1fMlgxAyfvardiItnYEPOhLbaz6Ymk3nxx7ha5E3PO4chHQ0pEEFB/GHnTSrGaUHJjtLTs3/JYIAAA= | 2019-09-13 | Unfortunately this is a compatibility issue. Our books are validated to the latest EPUB standards, so older technology may not support current content. You may want to try using a different reader, if that's available to you. \n | |
| 31 | TYPO | In the block of text about the different parts of the JSON object defining the PublishVideo message, the description of the id, type and metadata are all in new lines. Only the part about the metadata is not in a new line. This seems to result in a problem in the numbering as well. 1 id are all ok, but the last, the data point has also the third number instead of four. This must be because of the numbering mistake for metadata which should be recognized as the third item in the list, but it is not and it stayed in the same line. | 2019-11-26 | There was a missing period after the number 3, the rascal! That made it so the build didn't interpret that as the start of a new bullet. \n \nFixed! | |
| 31 | TYPO | The list entry for item 3. metadata has a typo in the formatting code (be it html, latex, markdown, or whatever). | 2020-02-08 | Fixed in v6. Thanks! | |
| 44 | TYPO | The Eventide message store is Just PostgreSQL™. I suspect the word ‘just’ need not be capitalized, unless this is a meme or marketing phrase that I’m unfamiliar with. | 2020-02-08 | It was intentional. When describing technologies built on top of other technologies, it's common to see the latter described as "Just X" for whatever X was. The joke being that it's not literally *just* Postgres because Postgres obviously doesn't ship with a message store. But we didn't have to use anything that doesn't ship with Postgres. | |
| 52 | TYPO | The text ‘(<xref linkend=”header.projectingDataIntoUsefulShapes. | 2020-02-08 | Oh dear goodness. Thank you for the catch! This has been updated. | |
| 152 | SUGGEST | Title “Why Are We Only Simulating an Upload to S3?” At first I took this to mean ‘Why are we only looking at Amazon’s offering and not Google’s or Microsoft’s". I think italicizing the word ’Simulating’ may help. | 2020-02-08 | Thank you. I reworked the header's title to be clearer and to follow style guidelines. | |
| 29 | 15 | ERROR | The code sample in “Connecting the Home Page Application” for the config.js is incorrect code sample lists creating the database requiring the wrong file. it is also in the “first-pass” code samples. It is currently listed as and should be | 2020-02-08 | Indeed. Apologies for the oversight. This is corrected now. |
| 40 | TYPO | The third list item is numbered 1, but it should probably be 3 | |||
| 14 | TYPO | homePageData is not referenced anywhere. I believe viewData is being referenced. | |||
| 28 | ERROR | If we follow your directions on page 19 (pdf)/xviii (book) and type all of the commands ourselves, then the “npm run start-dev-server” command on page 28 (pdf)/10 (book) will fail to start for the following reasons: 2. The .env file isn’t explicitly created. On page 8, it is discussed but it doesn’t mention what values to put in there. Perhaps including a statement to grab a copy from the code/first-pass directory would make sense? | |||
| 34 | TYPO | “Lines 1 and 2 pull in functions to create our database code and the home application you just wrote …” The database creation code is then listed lower down on page 34(pdf)/16(book). This should be before the update to the config.js file. | |||
| 39 | TYPO | The last word on the page is autonomouse, should be autonomous. Although the thought of an autonomous mouse is funny. | |||
| 39 | TYPO | Chapter: “Hanging a Lantern” “autonomouse” should be “autonomous” | |||
| 100 | TYPO | Extracting “Microservices” 2nd para “All of these pieces being in the green box represents that their running on the same server”. Should be “they are (or they’re) running on the same server” | |||
| 39 | TYPO | Third sentence of first paragraph: | |||
| 61 | TYPO | 2nd to last sentence on page 61: “change one wit” should be “change one bit” | |||
| 74 | ERROR | Last line of read.js has unneeded " exports = " in it. “module.exports= exports= createRead” | |||
| 39 | TYPO | The last line of the last paragraph states: “Messages are what make autonomous microservices possible, and autonomouse” “autonomouse” should be spelled “autonomous,” though I like the idea of a little mouse mascot named Autonomouse. | |||
| 111 | TYPO | AlreadyRegsiteredError should be AlreadyRegisteredError |