One month ago there was a 33rd Degree conference in Kraków, Poland. One month is a lot of time and probably the ones from you who heard about it or been there don’t remember it already. However, I was there and grabbed some notes. And finally, I found some time to compile and publish them. 🙂
Before going to the conference I’ve read Min/max note taking for conferences (thanks to brain dump from GeeCON 2014 by Tomek Dziurko). This gave me some useful hints to take my own notes. I hope you will find them interesting. The only thing I need to do after next conference is just publishing them slightly earlier.
So here are the first day’s notes:
Smoothing Out the Rough Edges of REST – Abdelmonaim Remani:
- Develop consistent URI scheme:
- use principle of least astonishment when creating APIs,
- use descriptive verbs in URLs for no HTTP actions – actions that are not CRUD operations on resources,
- use no CAPS in URLs nor camel case notation,
- hyphens seem to be better than underscoring,
- HATEOAS to drive application by state machine changes,
- Partials and variations:
- use query parameters for pagination/sorting/ordering/filtering,
- support of custom views on data:
- provide own expression language using parameters to compute views on-the-fly,
- use custom predefined views through parameters (…/?view=brief or …/?view=full),
- support of legacy clients using GET/POST methods only (…/?method=PUT/DELETE/…),
- Security:
- stateless security without cookies/HTTP session means sending credentials with every request,
- HTTP Security vs OAuth,
- Versioning:
- use HTTP headers instead of query parameters and provide own specific MIME/Media Type,
- Documentation:
- document endpoint, description, prerequisites, request and response format,
- tools like Swagger, WSO2 API Manager, I/O Docs may help.
High-Performance Reactive Applications with Vert.x – Tim Fox:
- support of 9 programming languages – polyglot programming mode is on!,
- EventBus is the central piece of Vert.x,
- different instances of Vert.x’s JVMs talks through clustered bus,
- Modules packs code in separate chunks which compose your application,
- designed to provide high availability (automatic failover, logical grouping of nodes, detection of network partitioning),
- monitoring and statistics in Vert.x 3.0.
Go Reactive: Blueprint for Future Applications – Roland Kuhn:
- Four Reactive Traits manifesto (points 3-6 under the link),
- responsiveness:
- bounded latency,
- parallelism, circuit breakers, bounded queues,
- based on events,
- resilience:
- be responsive in case of failure,
- asynchronous failure – bulk heading,
- scalability:
- be responsive in case of changing load,
- asynchronous debugging is hard – need to focus on monitoring and tracing instead (work on async debuggers – tracing concrete message flow – is in progress),
- fewer assumptions in async programming mean lower maintenance costs.
0 Comments