33rd Degree Conference notes – Day 1

Notes from Day 2 and Day 3.

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.

Leave a Reply