I'm walking in the cool mornings at the moment, as the problem with my right knee is preventing me from running right now, which is driving me bonkers. View from the narrowboat stern this morning just before I set off on the walk. On the walk this morning, I listened to a couple of episodes from two great podcasts I'm subscribed to - Hanselminutes and Soft Skills Engineering . Knowledge…
I wrote recently about Hexagonal Architecture, alternatively known as Ports & Adapters, in Book Overflow and two architectural patterns in CAP . The core idea is based on having a deliberately agnostic approach to mechanisms, resources and services beyond - located in the outer concentric circles, as it were - a given core service. Think of this in a similar way to "late cut" integration, where…
At reCAP this year, I was honoured to share a talk slot with Patrice Bender , a good friend and adjacent colleague from the CAP Compiler team, and cohost / copresenter on the Hands-on SAP Dev mini-series on the core expression language in CDS . The talk was titled Expressions and Abstractions - Two Developer Superpowers in CAP , with the following overview: Today we need to be more efficient and…
My good friend and colleague Antonio shared some thoughts today (also, see update below) about a post he'd just read: The Last People Who Know How It Works . I was composing a reply to Antonio's thoughts on LinkedIn, but then thought better of it, and in the proper spirit of "owning (and being in control of) one's own content", harking back to the good old days of communication and community on…
Terence Eden recently published a post titled This blog is written in en-GB . Before I even read the post, I knew what it was going to be about, and that I had to make that change myself too, for the same reasons as I'd guessed he was going to explain. Terence expresses those reasons very well, so I won't try to reproduce them here. I'm in strong agreement with him and those reasons resonate with…
Recently I wrote about mocking auth in CAP for a rapid local-first development loop that allows you to embrace auth design rather than defer it to later. In development mode, unless otherwise stated (i.e. unless you add appropriate annotations such as @readonly , @requires or @restrict ), all resources are accessible to everyone, even without authenticating. This is appropriate and fitting,…
Book Overflow is "a long-form discussion podcast for software engineers" and one of the shows to which I'm subscribed. The recent episode 118 is one in the series where Carter and Nathan discuss the book Learning Domain-Driven Design: Aligning Software Architecture and Business Strategy by Vlad Khononov. I listened to this episode today and found that, as usual, the two go into great depth and…
This post is one of a series on local-first development with CAP Node.js . Everything is an event In Five reasons to use CAP , we see that everything is an event . Whether synchronous, such as via HTTP requests and responses for OData operations, or asynchronous, where messages are emitted and received for decoupled service-to-service communications. The Messaging topic in Capire has a great…
This post is one of a series on local-first development with CAP Node.js . Calesi and mocking remote services In the context of CAP-Level Service Integration (aka "Calesi") we can mash up remote and local services, and in the full spirit of CAP generally, run everything in airplane mode , i.e. fully locally. Working through an example In this post, we'll work through an example of mocking a remote…
This post is one of a series on local-first development with CAP Node.js . The mocked authentication strategy The Authentication Strategies section of the Node.js Security topic in Capire explains the different strategies available, and the "mocked" strategy comes with pre-defined users that can be used, with their various levels of authorisations, to explore, define and test security-related…