diff --git a/content/books/things-i-learnt/_index.md b/content/books/things-i-learnt/_index.md index c6cd3b9..6013d97 100644 --- a/content/books/things-i-learnt/_index.md +++ b/content/books/things-i-learnt/_index.md @@ -54,6 +54,7 @@ template = "section-contentless.html" * [The Config File Is Friend](config-file) * [Command Line Options Are Weird, But Helpful](command-line-options) * [Not Just Function Composition, But Application Composition](application-composition) + * [Even for Application Composition, Start Stupid](app-composition-stupid) * [Logs Are For Events, Not User Interface](log-events) * [Learn To Monitor](monitoring) * Community/Teams diff --git a/content/books/things-i-learnt/app-composition-stupid/index.md b/content/books/things-i-learnt/app-composition-stupid/index.md new file mode 100644 index 0000000..e7edb4e --- /dev/null +++ b/content/books/things-i-learnt/app-composition-stupid/index.md @@ -0,0 +1,30 @@ ++++ +title = "Things I Learnt The Hard Way - Even for Application Composition, Start Stupid" +date = 2019-07-15 + +[taxonomies] +tags = ["en-au", "books", "things i learnt", "composition", "microservices"] ++++ + +Application composition may lead to microservices -- which is good -- but +microservices require some ideas about how applications "talk" between them +over the wire (protocols and such) which you don't need to start with. + + + +Again, because you just want to simplify your work, you can make the +applications use files directly: Have your first application generate two +files and the second application receive the file names from [the command +line](/books/things-i-learnt/command-line-options). There, simple and stupid, +and works. + +You can even make the first application, instead of generating a file, just +send its result on the standard output, and have the second application +receive the data from the standard input -- both of which are managed as +files, anyway. Then, with a bit of magic, you can put everything together +without wasting space. + +Worry about talking over the wire later, when you understand how networks +work. + +{{ chapters(prev_chapter_link="/books/things-i-learnt/application-composition", prev_chapter_title="Not Just Function Composition, But Application Composition", next_chapter_link="/books/things-i-learnt/log-events", next_chapter_title="Logs Are For Events, Not User Interface") }} diff --git a/content/books/things-i-learnt/application-composition/index.md b/content/books/things-i-learnt/application-composition/index.md index c9ff1ca..5741b65 100644 --- a/content/books/things-i-learnt/application-composition/index.md +++ b/content/books/things-i-learnt/application-composition/index.md @@ -41,4 +41,4 @@ applications (why would you ask your user to have _two_ applications open at the same time to make something work?) but you can extrapolate this for almost everything else. -{{ chapters(prev_chapter_link="/books/things-i-learnt/command-line-options", prev_chapter_title="Command Line Options Are Weird, But Helpful", next_chapter_link="/books/things-i-learnt/log-events", next_chapter_title="Logs Are For Events, Not User Interface") }} +{{ chapters(prev_chapter_link="/books/things-i-learnt/command-line-options", prev_chapter_title="Command Line Options Are Weird, But Helpful", next_chapter_link="/books/things-i-learnt/app-composition-stupid", next_chapter_title="Even for Application Composition, Start Stupid") }} diff --git a/content/books/things-i-learnt/log-events/index.md b/content/books/things-i-learnt/log-events/index.md index db45937..ec8349a 100644 --- a/content/books/things-i-learnt/log-events/index.md +++ b/content/books/things-i-learnt/log-events/index.md @@ -43,4 +43,4 @@ could have the values to try to figure out why it failed -- surely, logging why it failed also helps, but you know what I mean. This is an example of something that makes complete sense in logs, but not in user interfaces. -{{ chapters(prev_chapter_link="/books/things-i-learnt/application-composition", prev_chapter_title="Not Just Function Composition, But Application Composition", next_chapter_link="/books/things-i-learnt/monitoring", next_chapter_title=Learn To Monitor"") }} +{{ chapters(prev_chapter_link="/books/things-i-learnt/app-composition-stupid", prev_chapter_title="Even for Application Composition, Start Stupid", next_chapter_link="/books/things-i-learnt/monitoring", next_chapter_title=Learn To Monitor"") }}